我有两个数组,我想比较一下。
ARRAY1:
array(4) {
["123"]=>
array(5) {
["animal"]=>
string(2) "cat"
["name"]=>
string(4) "fred"
}
["345"]=>
array(5) {
["animal"]=>
string(3) "dog"
["name"]=>
string(4) "alan"
}
["order"]=>
string(2) "12"
}
数组2:
array(4) {
["123"]=>
array(5) {
["animal"]=>
string(2) "cat"
["name"]=>
string(4) "fred"
}
["345"]=>
array(5) {
["animal"]=>
string(3) "fox"
["name"]=>
string(4) "tom"
}
["order"]=>
string(2) "12"
}
我将它们与array_diff进行比较:
$result = array_diff($array1, $array2);
但如果我得到var_dump $ result,我会得到以下输出:
array(0) {
}
有谁知道为什么?
答案 0 :(得分:0)
对于关联数组,您应该使用array_diff_assoc
。如果需要,另请参阅用户提供的有关如何递归执行此操作的说明。
答案 1 :(得分:0)
在sinaza的帮助下,我发现没有显示任何差异,因为array_diff
与多维数组的工作方式不同。
这是代码,对我有用:
foreach ($array1 as $k1 => $v1) {
if (array_diff($array2[$k1], $array1[$k1])){
$result[$k1] = array_diff($array2[$k1], $array1[$k1]);
}
}