php – 在多维数组中查找子数组之间的公共值

开发技术 作者: 2024-06-24 11:40:02
我有以下数组: 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);
原创声明
本站部分文章基于互联网的整理,我们会把真正“有用/优质”的文章整理提供给各位开发者。本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
本文链接:http://www.jiecseo.com/news/show_32659.html