$arr1 = array(1,2,3) ;
$arr2 = array(1=>200,2=>3,0=>2);var_dump( $arr1==$arr2 );// false
var_dump( $arr1>$arr2 ); // false
var_dump( $arr1<$arr2 );// true
$arr1 = array(1,2,3) ;
$arr2 = array(1=>200,2=>3,0=>0);var_dump( $arr1==$arr2 ); //false
var_dump( $arr1>$arr2 );//false 按照PHP手册的解释,这个地方不应该是true吗??
var_dump( $arr1<$arr2 );//false
$arr2 = array(1=>200,2=>3,0=>2);var_dump( $arr1==$arr2 );// false
var_dump( $arr1>$arr2 ); // false
var_dump( $arr1<$arr2 );// true
$arr1 = array(1,2,3) ;
$arr2 = array(1=>200,2=>3,0=>0);var_dump( $arr1==$arr2 ); //false
var_dump( $arr1>$arr2 );//false 按照PHP手册的解释,这个地方不应该是true吗??
var_dump( $arr1<$arr2 );//false
请贴出你的 PHP手册的解释
首先元素数量比较,1比2多返回1,2比1多返回-1
如果一样多那么遍历1,如果1的key不在2里则返回null,在的话比较value,1大返回1,2大返回-1,相等则继续比较下一个key
遍历完都一样则返回0其实要比较数组还是自己写比较的函数吧
如果随便给value赋一个值:
$arr2 = array(1=>200,2=>3,0=>1);
array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3) }
array(3) { [1]=> int(200) [2]=> int(3) [0]=> int(1) }
bool(false) bool(false) bool(true)那么就是第三个为true,如果第三个k和前两个K的其中一个相等:
$arr2 = array(1=>200,2=>3,1=>0);
输出:
array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3) }
array(2) { [1]=> int(0) [2]=> int(3) }
bool(false) bool(true) bool(false)
所以,k不能全部一样,不然会覆盖第一个的值;value需要有赋值,不然无法比较;