“根据PHP的通常类型比较规则(
http://php.net/manual/en/types.comparisons.php)进行比较”.
1)是的,它使用ASCII值
2)如果数组的长度不同,则值较小的数组较小.
否则,它按键比较数组,给“早期”值优先.例如,首先将$arr1 [0]与$arr2 [0]进行比较.如果$arr1具有$arr2中不存在的键,则数组不具有可比性(例如,如果我们使用非数字数组).
// Arrays are compared like this with standard comparison operators
// $arr1 and $arr2 are arrays
function standard_array_compare($arr1,$arr2)
{
// If either array has more values,that array is considered "larger"
if (count($arr1) < count($arr2)) {
return -1; // $arr1 < $arr2
} elseif (count($arr1) > count($arr2)) {
return 1; // $arr1 > $arr2
}
//Otherwise compare the array values directly
foreach ($arr1 as $key => $val) {
if (!array_key_exists($key,$arr2)) {
return null; // uncomparable,these arrays do not have the same keys
} elseif ($val < $arr2[$key]) {
return -1; // $arr1 < $arr2
} elseif ($val > $arr2[$key]) {
return 1; // $arr1 > $arr2
}
}
return 0; // $arr1 == $arr2
}
注意,上面不是PHP的实际代码,只是所用逻辑的近似表示.
从本质上讲,它以类似的方式处理数组以比较大端数.它将$arr1 [0]与$arr2 [0]进行比较.如果它们是不同的,则返回-1或1,具体取决于哪个更大.如果它们相同则转移到$arr1 [1]和$arr2 [1].如果所有值都相同则返回0(数组相等)
虽然不完全相同,但考虑[1,3]< =>可能更简单. [3,1]基本等同于123 = 3. 321 …