作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
参数是这样的:
function foo(arr1, arr2, arr3, arr4 ...)
并且该函数应返回 arr2、arr3、arr4 中不存在于 arr1 中的所有元素的数组。
有内置函数吗?还是我需要自己用 foreach 之类的东西来做? :)
最佳答案
没有内置函数可以完全满足您的要求。 array_diff()
很接近,但不完全是。所以你必须推出你自己的漂亮整洁的功能,或者做一些像这样丑陋的事情:
array_diff( array_unique(
array_merge(
array_values($arr2),
array_values($arr3),
array_values($arr4)
)),
$arr1
);
如果您希望在数组中多次出现的值在您的结果中也多次表示,您可以删除对 array_unique()
的调用。
如果您的数组中的键都是数字的,或者您确定没有非数字键出现在多个数组中,则可以删除对 array_values()
的调用正在合并。
因此,在那些理想情况下,它可以简化为:
array_diff( array_merge( $arr2, $arr3, $arr4 ), $arr1 );
关于php - array_intersect() 的逆函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8377867/
我是一名优秀的程序员,十分优秀!