2013-05-03 100 views
2

我有两个这样的数组。比较两个数组并获得所有差异

$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和其他数组元素。

+0

庵,和array_diff返回数组。那么为什么你不能使用它返回的数组呢? – 2013-05-03 09:55:03

+0

那么请向我们展示一些您似乎很难处理的工作,然后人们会很乐意帮助您,因为目前看起来您希望我们做好功课。 – 2013-05-03 09:56:08

+0

Puciek - 我已经完成了我的功课,并且我已经为那些关心并回复正面答复的人提出了这个问题。甚至不提供任何___评论。谢谢 – hjaffer2001 2013-05-03 10:00:40

回答

8

试试这个

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

非常好。工作很好! – hjaffer2001 2013-05-03 09:58:45

+3

我不知道是否array_diff(array_merge($ array1,$ array2),array_intersect($ array1,$ array2))会更快。 – alexpirine 2013-05-03 09:59:04

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