首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数组的数组的PHP交集

问数组的数组的PHP交集
EN

Stack Overflow用户
提问于 2011-08-07 17:42:21
回答 4查看 1.5K关注 0票数 0

我有一个数组数组。示例如下

代码语言:javascript
复制
a[0]={1,2,3};
a[1]={2,3,4};
**Edit** in a[2] from a[2]={4,5};
a[2]={2,4,5};
and more 

如何找到存在于所有数组中的公共元素?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-08-07 17:57:24

您可以通过以下方式避免foreach循环

代码语言:javascript
复制
call_user_func_array('array_intersect',$a);
票数 1
EN

Stack Overflow用户

发布于 2012-12-14 18:47:52

这是我做的一个函数。它只是一个多维数组的引用。

代码语言:javascript
复制
<?php
$array1 = array('angka'=>12,'satu','2'=>'dua','tiga'=>array('dua','enam','empat'=>array('satu','lima',12)));//object
$array2 = array('dua','tiga','empat',12);//object as intersect refference

function intersect($data=NULL)
{
    if(!empty($data))
    {
        $crashed = array();
        $crashed2 = array();
        foreach($data[0] as $key=>$val)
        {
            if(!is_array($val))
            {
                $crashed[$key] = in_array($val,$data[1]);//return true if crashed (intersect)
            }
            else
            {
                $crashed2[$key] = intersect(array($val,$data[1]));
            }
            $crashed = array_merge($crashed,$crashed2);
        }
    }
    return $crashed;
}
$intersect = intersect(array($array1,$array2));
print_r($intersect);
?>

它返回如下结果:

代码语言:javascript
复制
Array ( [angka] => 1 [0] => [1] => 1 [tiga] => Array ( [0] => 1 [1] => [empat] => Array ( [0] => [1] => [2] => 1 ) ) ) 

如果数组的值与引用数组匹配,则返回true。

希望代码能对你有所帮助。

票数 4
EN

Stack Overflow用户

发布于 2011-08-07 17:43:14

看看这里,array-intersect。你可以这样使用它:

代码语言:javascript
复制
$intersect = $a[0];
for ($i = 1; $i < count($a); $i++)
{
    $intersect = array_intersect($intersect, $a[$i]);
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6971945

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档