PHP-比较两个数组,如果有重复则删除所有匹配项

时间:2019-12-17 16:05:24

标签: php arrays

我有两个数组:

foo
bar
baz

foo
baz

我想比较这两个数组,如果有匹配项,则删除两者匹配项(不只是重复项),所以我最终得到一个像这样的数组:

bar

我知道数组1将始终包含foobarbaz,而数组2将始终包含foobaz。数组中的条目不一定总是相同的顺序,但是内容将保持不变。

代替比较两个数组,我可以做类似16153948的解决方案,但这将要求我对要删除的每个匹配项使用(几乎)重复的行,因为条目是完全不相关的(不能使用正则表达式),这似乎不是一个好的解决方案。

1 个答案:

答案 0 :(得分:3)

您可以使用array_diff获得两个数组的差异,然后使用array_merge合并它们:

$res = array_merge(array_diff($a, $b), array_diff($b, $a));
print_r($res);

Php demo

输出

Array
(
    [0] => bar
)

Php demo具有更多不同的值。