$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

解决方案 »

  1.   

    数组没有 大小比较运算!
    请贴出你的 PHP手册的解释
      

  2.   

    根据手册解释:
    首先元素数量比较,1比2多返回1,2比1多返回-1
    如果一样多那么遍历1,如果1的key不在2里则返回null,在的话比较value,1大返回1,2大返回-1,相等则继续比较下一个key
    遍历完都一样则返回0其实要比较数组还是自己写比较的函数吧
      

  3.   

    没有value值,所以无法比较,故输出false;
    如果随便给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需要有赋值,不然无法比较;