PHP获取两个数组外差集(Outer diff)的简洁实现方法
PHP数组外差集(对称差集)实现方案
结论
PHP目前没有原生内置的单独助手函数,可以直接实现两个数组的外差集(即仅在其中一个数组中出现、未同时在两个数组中存在的元素集合)。
更优实现方式
你当前使用的写法逻辑可行,还有一种更直观、执行效率更高的实现方案:
$result = array_merge(array_diff($a, $b), array_diff($b, $a));
示例验证
针对你给出的测试数组:
$a = array('11','22','33'); $b = array('22','44');
array_diff($a, $b)输出仅在$a中存在的元素:['11', '33']array_diff($b, $a)输出仅在$b中存在的元素:['44']- 两者合并后结果完全符合预期:
['11', '33', '44']
补充说明
- 如果需要保留差集元素的原有键名,可将
array_merge替换为+运算符:$result = array_diff($a, $b) + array_diff($b, $a); - 如果需要严格校验元素类型、或者处理关联数组/多维数组,可根据需求将
array_diff替换为array_diff_assoc、array_udiff等对应差集函数即可。
内容的提问来源于stack exchange,提问作者Mahdi Bashirpour
相关产品推荐
相关产品推荐

