[英]PHP - Compare two arrays and if there are duplicates remove all matches
我有两个数组:
foo
bar
baz
和
foo
baz
我想比较这两个数组,如果有匹配项,删除两个匹配项(不仅仅是重复项),所以我最终得到一个这样的数组:
bar
我知道数组 1 将始终包含foo
、 bar
和baz
,而数组 2 将始终包含foo
和baz
。 数组中的条目不会总是以相同的顺序排列,但内容将保持不变。
而不是比较两个数组,我可以做一些类似于16153948的解决方案,但这需要我为我想删除的每个匹配项使用(几乎)重复的行,因为条目相当不相关(不能使用正则表达式),这似乎不是一个好的解决方案。
您可以使用array_diff获取两个数组的差异,然后使用array_merge合并它们:
$res = array_merge(array_diff($a, $b), array_diff($b, $a));
print_r($res);
输出
Array
(
[0] => bar
)
具有更多不同值的PHP 演示。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.