与array_intersect相反?
2022-08-30 09:24:24
是否有内置函数来获取数组 1 中不存在的数组 2 中不存在的所有成员?
我知道如何以编程方式做到这一点,只是想知道是否有一个内置函数可以做同样的事情。所以,请不要使用代码示例。
是否有内置函数来获取数组 1 中不存在的数组 2 中不存在的所有成员?
我知道如何以编程方式做到这一点,只是想知道是否有一个内置函数可以做同样的事情。所以,请不要使用代码示例。
array_diff绝对是显而易见的选择,但从技术上讲,它并不是数组相交的反面。举个例子:
$arr1 = array('rabbit','cat','dog');
$arr2 = array('cat','dog','bird');
print_r( array_diff($arr1, $arr2) );
你想要的是一个包含“兔子”和“鸟”的结果,但你得到的只是兔子,因为它正在寻找第一个数组中的内容,而不是第二个数组中的内容(反之亦然)。要真正获得您想要的结果,您必须执行如下操作:
$arr1 = array('rabbit','cat','dog');
$arr2 = array('cat','dog','bird');
$diff1 = array_diff($arr1, $arr2);
$diff2 = array_diff($arr2, $arr1);
print_r( array_merge($diff1, $diff2) );
注意:此方法仅适用于具有数字键的数组。