与array_intersect相反?

Ita*_*vka 45 php arrays array-intersect

是否有内置函数来获取阵列2中不存在的阵列1的所有成员?
我知道如何以编程方式执行它,只是想知道是否有内置函数执行相同操作.所以请,没有代码示例.

Jon*_*Jon 68

这听起来像是一份工作array_diff.

返回一个数组,其中包含array1中任何其他任何数组中都不存在的条目.


Dal*_*ley 36

array_diff绝对是明显的选择,但它在技术上并不是数组界面的反面.举个例子:

$arr1 = array('rabbit','cat','dog');

$arr2 = array('cat','dog','bird');

print_r( array_diff($arr1, $arr2) );
Run Code Online (Sandbox Code Playgroud)

你想要的是"兔子"和"鸟"的结果,但你得到的只是兔子,因为它正在寻找第一个阵列而不是第二个阵列(反之亦然).要真正得到你想要的结果你必须做这样的事情:

$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) );
Run Code Online (Sandbox Code Playgroud)

注意:此方法仅适用于带数字键的数组.

  • 谢谢你这就是我想要的,这应该是标记为解决方案 (3认同)