比较两个数组并获取所有的差异

5

我有两个这样的数组。

$array1=array(1,2,3,4,5,7);
$array2=array(1,2,3,4,5,6);

因此,输出应该带来两个数组的差异。
输出应该是:
1,2,3,4,5->这些数字存在于两个数组中,所以它们应该被忽略。
7和6->这些数字在两个数组中不常见,所以我需要这些值在数组中。
输出应该为7和6。
帮帮我。我尝试过array_diff和其他数组元素。

嗯,array_diff返回一个数组。那么为什么不能使用它返回的数组呢? - user1508519
3
hjaffer:如果你在这里提问,你会发现@Puciek所说的话经常被重复。一般来说,这里的读者希望你先尝试而不是直接提问,并不是要表现粗鲁;这只是为了教人们如何自学,并避免那些完全没有付出任何努力的问题(也就是“求助吸血鬼”)。因此,如果你在所有问题中加入_你当前的代码尝试_,你就没问题了。 - halfer
2个回答

14

试一试

array_merge(array_diff($array1,$array2),array_diff($array2,$array1))

3
我在想,使用array_diff(array_merge($array1, $array2), array_intersect($array1, $array2))会不会更快。 - alexpirine

0
foreach($array1 as $key => $value) {
    if($value != $array2[$key]) {
        echo "\$array1[" . $key . "] (" . $value . ") is different to \$array2[" . $key . "] (" . $array2[$key] . "<br />";
    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接