我正在寻找与函数array_intersect
相反的函数,它基本上是一个函数,它返回 中所提供数组的 元素。
示例:
$a1 = array(1, 2, 3);
$a2 = array(2, 3, 4);
$result = array(1, 4);
我知道如何以编程方式完成它(我只有两个数组,所以array_merge(array_diff($a1, $a2), array_diff($a2, $a1))
可以完成这项工作),但我想知道是否有一个我找不到的内置函数。 / p>
感谢。
答案 0 :(得分:5)
自array_diff($a, $b) !== array_diff($b, $a)
以来
array_intersect的反转是:
array_merge(array_diff($a,$b), array_diff($b,$a));
这是一个PHPUnit测试格式:
class ArrayInverseTest {
function testInverseArrayIntersect() {
$a = array(1, 2, 3);
$b = array(2, 3, 4);
$this->assertEquals(
array_values(array(1, 4)),
array_values(array_merge(array_diff($a, $b), array_diff($b, $a)))
);
}
}
答案 1 :(得分:2)
它没有内置。请注意,您可以改进解决方案:
array_merge($a1, array_diff($a2, $a1));
答案 2 :(得分:1)
没有内置
我相信一种语言永远不会提供这样的内置函数
答案 3 :(得分:1)