以下是PHP documentation about array_diff_assoc
中的一个示例。
在此示例中,您看到两个数组中都存在
"a" => "green"
对,因此在函数的输出中不存在。与此不同,输出0 => "red"
对是因为第二个参数"red"
的键为1
。<?php $array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red"); $array2 = array("a" => "green", "yellow", "red"); $result = array_diff_assoc($array1, $array2); print_r($result); ?>
上面的示例将输出:
Array ( [b] => brown [c] => blue [0] => red )
red
存在于两个数组中,但在array_diff_assoc
的输出中返回,为什么PHP 认为 red
中的$array1
和$array2
不同吗?
答案 0 :(得分:2)
这是因为在第一个数组中红色的索引为0,而在第二个数组中红色的索引为1,所以它们是不同的。
从文档中
通过附加索引检查来计算数组的差异
<?php
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "green", "yellow", "red");
var_dump($array1);
var_dump($array2);
输出:
array(4) {
["a"]=>
string(5) "green"
["b"]=>
string(5) "brown"
["c"]=>
string(4) "blue"
[0]=>
string(3) "red"
}
array(3) {
["a"]=>
string(5) "green"
[0]=>
string(6) "yellow"
[1]=>
string(3) "red"
}
答案 1 :(得分:1)
$ array1中红色的键为0:
$ array1 ([a] =>绿色[b] =>棕色[c] =>蓝色 [0] =>红色)
$ array2 ([a] =>绿色[0] =>黄色 [1] =>红色)