繁体   English   中英

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

[英]PHP - Compare two arrays and if there are duplicates remove all matches

我有两个数组:

foo
bar
baz

foo
baz

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

bar

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

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

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

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

php 演示

输出

Array
(
    [0] => bar
)

具有更多不同值的PHP 演示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM