如何判断两个数组相等呢?其实很简单,用 == 或者 === 就可以了php手册里说明如下:

那像 array("k"=>array())这样的多维数组能用如上方法判断相等吗?当然也可以。若数组是数字索引的,就要注意一下了,见代码:复制代码 代码如下:<?php$a = array("apple", "banana");$b = array(1 => "banana", "0" => "apple");

var_dump($a == $b); // bool(true)var_dump($a === $b); // bool(false)?>

除了==这种数组操作符之外,还有其他比较绕的方法来判断。比如说,利用array_diff($a, $b)来比较两个数组的差集,如果差集是空数组的话就相等了。然后再说一下 数组的 + 加号运算符。+ 和 array_merge的区别在遇到相等key时,用+时,左边数组会覆盖掉右边数组的值,array_merge相反,后面的数组覆盖掉前面的。

复制代码 代码如下:<?php$a = array("a" => "apple", "b" => "banana");$b = array("a" => "pear", "b" => "strawberry", "c" => "cherry");

$c = $a + $b; // Union of $a and $becho "Union of $a and $b: ";var_dump($c);

$c = array_merge($a, $b); // Union of $b and $aecho "array_merge of $b and $a: ";var_dump($c);?>

执行后输出:

复制代码 代码如下:Union of $a and $b: array(3) {  ["a"]=>  string(5) "apple"  ["b"]=>  string(6) "banana"  ["c"]=>  string(6) "cherry"}array_merge of $b and $a: array(3) {  ["a"]=>  string(4) "pear"  ["b"]=>  string(10) "strawberry"  ["c"]=>  string(6) "cherry"}