使用array_diff(),如何从array2而不是array1获得差异



我正在尝试这样使用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未返回?

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

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

try;

$diff = array_merge(array_diff($list_1, $list_2), array_diff($list_2, $list_1));
print "DIFF: " . count($diff) ."<br>";
print_r($diff);

来自文档:

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

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

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

您可能想与十字路口一起玩,这可能会帮助您获得想要的东西。

相关内容

  • 没有找到相关文章

最新更新