PHP array_diff无法正常工作

时间:2012-10-16 18:43:24

标签: php

我试图像这样使用array_diff。这是我的两个数组输出:

列出1输出

Array ([0] => 0022806 ) 

列出2输出

Array ([0] => 0022806 [1] => 0023199 ) 

PHP

$diff = array_diff($list_1, $list_2);

print "DIFF: " . count($diff) ."<br>";
print_r($diff);

输出是:

DIFF: 0
Array ( )

知道我做错了吗?

4 个答案:

答案 0 :(得分:15)

array_diff()中参数的顺序很重要

  

返回一个数组,其中包含来自 array1 的所有条目   存在于任何其他数组中

答案 1 :(得分:7)

试;

$diff = array_merge(array_diff($list_1, $list_2), array_diff($list_2, $list_1));

print "DIFF: " . count($diff) ."<br>";
print_r($diff);

答案 2 :(得分:1)

From the docs

  

返回一个数组,其中包含array1中未包含的所有条目   存在于任何其他阵列中。

如果您只想检查它们是否相同,可以使用$list1 == $list_2

答案 3 :(得分:1)

根据documentation,从第一个数组中减去第二个数组的值。或者,换句话说,从第一个数组开始,然后删除第二个数组中出现的所有值。这将正确产生一个你在上面看到的空数组

您可能想要使用intersection,这可能会帮助您获得所需内容。