加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-13 22:01:45 所属栏目:PHP教程 来源:网络整理
导读:我有以下数组: Array( [0] = Array ( [0] = 87 [1] = 58 [2] = 85 [3] = 86 ) [1] = Array ( [0] = 58 [1] = 84 ) [2] = Array ( [0] = 58 )) 上面的这个数组是一个例子.实际的数组大小可变,但结构如下.基本上,我想在每个二级数组上运行array_intersect并获
我有以下数组:

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);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读