php – 在多维数组中查找子数组之间的公共值
我有以下数组: Array
(
[0] => Array
(
[0] => 87
[1] => 58
[2] => 85
[3] => 86
)
[1] => Array
(
[0] => 58
我有以下数组:
Array
(
[0] => Array
(
[0] => 87
[1] => 58
[2] => 85
[3] => 86
)
[1] => Array
(
[0] => 58
[1] => 84
)
[2] => Array
(
[0] => 58
)
)
上面的这个数组是一个例子.实际的数组大小可变,但结构如下.基本上,我想在每个二级数组上运行array_intersect并获取它们之间常见的值(数字).在这种情况下,它将是58.
我不太清楚从哪里开始.有什么建议?
解决方法
这对我有用:
function multi_intersect($arr) {
$return = array();
foreach ($arr as $a) {
foreach ($arr as $b) {
if ($a === $b) continue;
$return = array_merge($return,array_intersect($a,$b));
}
}
return array_unique($return);
}
应该得到你:
Array
(
[0] => 58
)
如果您在至少两个子阵列中有一个公共号码,则上述操作将起作用.
编辑后:
如果要查找所有子数组中包含的数字,可以在array_intersect上使用call_user_func_array:
$intersect = call_user_func_array('array_intersect',$arr);
原创声明
本站部分文章基于互联网的整理,我们会把真正“有用/优质”的文章整理提供给各位开发者。本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。