php - PHP - 比较两个数组,如果有重复,则删除所有匹配项
问题描述
我有两个数组:
foo
bar
baz
和
foo
baz
我想比较这两个数组,如果有匹配项,请删除两个匹配项(不仅仅是重复项),所以我最终得到一个这样的数组:
bar
我知道数组 1 将始终包含foo
, bar
, andbaz
并且数组 2 将始终包含foo
and baz
。数组中的条目并不总是以相同的顺序排列,但内容将保持不变。
而不是比较两个数组,我可以做类似16153948的解决方案的事情,但这需要我为我想要删除的每个匹配项使用(几乎)重复的行,因为条目是相当不相关的(不能使用正则表达式),这似乎不是一个好的解决方案。
解决方案
您可以使用array_diff获得两个数组的差异,然后使用array_merge合并它们:
$res = array_merge(array_diff($a, $b), array_diff($b, $a));
print_r($res);
输出
Array
(
[0] => bar
)
具有更多不同值的PHP 演示。
推荐阅读
- javascript - 你能从 xml 请求中返回一个数组吗?
- swift - 具有数组成员的结构的可编码合成不起作用?
- python - 在 Keras 模型中加载时出现 TypeError
- python - 使用 Anaconda 在 Google App Engine 上安装软件包?
- amazon-web-services - 无法在 EBS 上设置 Promethues 监控的 Kubernetes 指标持久存储
- dns - AXFR > BIND 区域转移
- javascript - 尝试连接 wsdl 服务时出错
- swift - tvOS 中的“AVFocusProxyView”是什么?得到一个奇怪的焦点问题
- c# - 新类对象 - 保留旧值
- android - 如何从 Android 调用后端 Python 脚本