11

我正在尝试像这样使用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 ( )

知道我做错了什么吗?为什么0023199不退货?

4

4 回答 4

22

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

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

于 2012-10-16T18:45:11.073 回答
13

尝试;

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

print "DIFF: " . count($diff) ."<br>";
print_r($diff);
于 2016-03-30T09:56:19.277 回答
2

从文档

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

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

于 2012-10-16T18:45:59.807 回答
1

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

您可能想玩转交,这可能会帮助您获得想要的东西。

于 2012-10-16T18:46:51.303 回答