为什么array_diff()将两个不同的数组比较为相同并返回空结果?

Fro*_*dik 1 php arrays array-difference

我有这个代码:

$a1 = array(31001);
$a2 = array(31001, 31002);
$diff = array_diff($a1, $a2);
var_dump($diff);
Run Code Online (Sandbox Code Playgroud)

我期待array_diff将array(0 => 31002)根据PHP文档返回:

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

但是发布的代码返回空数组.任何人都可以解释为什么会发生这种情况以及如何获得正确的结果?

这是PHPfiddle的例子.

感谢您提供任何帮助或有用的提示.

Sir*_*rko 7

准确阅读文档.存在于$a1和不存在的值集合$a2为空:$a1只包含一个元素(31001),它也存在于中$a2.

您希望获得存在$a2但不存在的所有值$a1,因此您必须切换数组的顺序,并传递给array_diff():

$diff = array_diff($a2, $a1);
Run Code Online (Sandbox Code Playgroud)