PHP数组比较

7
如何比较两个数组?
例如,我有array("a", "b", "c")array("a", "c", "b")。当它们进行比较时,如果其中一个字母在其中一个数组中找不到,则返回false;否则返回true。顺序不重要。

它可以是这么简单的东西吗?if (serialize(sort($array1)) == serialize(sort($array2)))? - Alec Smart
3
@Alec表示:sort函数不返回数组。 - soulmerge
2个回答

18

在比较之前,您需要将两个数组的内容按照相同的顺序排列:

sort($array1);
sort($array2);
// now you can compare as usual
if ($array1 == $array2) ...

如果你想要保留键值,可以使用asort()函数。


-3

您可以使用:

if (empty(array_diff($array1, $array2)) {
    // do something
}

3
无论如何都不行,array_diff 只返回 array1 中缺少的 array2 实体。你还需要检查 array_diff($array2, $array1) 来确保完整性。 - Brandon Horsley
@soulmerge,自 PHP 5.5.0 起,empty 函数可以用于表达式。 - Jocelyn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接