php大数组怎么求交集

这里这个$arr是个二维数组,怎么求它里面各个数组的交集$jiaoji=array_intersect($str);关键是这个$str该怎么写,该怎么循环写出来呢... 这里这个$arr 是个二维数组,怎么求它里面各个数组的交集$jiaoji = array_intersect($str);关键是这个$str 该怎么写 ,该怎么循环写出来呢 展开
 我来答
CodeMan
2016-01-19 · 知道合伙人软件行家
CodeMan
知道合伙人软件行家
采纳数:193 获赞数:505
php开发 html mysql javascript vb

向TA提问 私信TA
展开全部
在PHP中求数组的交集,我们可以与PHP给我们提供的现成函数:array_intersect(),其用法格式为:

array array_intersect(array array1,array array2[,arrayN…])

根据上述的语法格式,我们来写一个例子:

1 <?php
2 $fruit1 = array("Apple","Banana","Orange");
3 $fruit2 = array("Pear","Apple","Grape");
4 $fruit3 = array("Watermelon","Orange","Apple");
5 $intersection = array_intersect($fruit1, $fruit2, $fruit3);
6 print_r($intersection);
7 // 输出结果:
8 // Array ( [0] => Apple )
9 ?>

本例子将返回在$fruit1数组中出现且在$fruit2和$fruit3中也出现的所有水果的名子。

使用array_intersect()函数时要注意:只有在两个元素相等且具有相同的数据类型时,array_intersect()函数才会认
为它们是相同的,否则不能进行交集计算。array_intersect()函数返回一个保留了键的数组,只由第一个数组中出现的且在其它数组中都出现的
值组成。

若要求关联数组的交集,请使用array_intersect_assoc()函数,给你个简单的例子:

1 <?php
2 $fruit1 = array("red"=>"Apple","yellow"=>"Banana","orange"=>"Orange");
3 $fruit2 = array("yellow"=>"Pear","red"=>"Apple","purple"=>"Grape");
4 $fruit3 = array("green"=>"Watermelon","orange"=>"Orange","red"=>"Apple");
5 $intersection = array_intersect_assoc($fruit1, $fruit2, $fruit3);
6 print_r($intersection);
7 // 输出:
8 // Array ( [red] => Apple )
9 ?>

array_intersect_assoc()函数语法格式如下:

array array_intersect_assoc(array array1,array array2[,arrayN…])

array_intersect_assoc()与array_intersect()基本相同,只不过他在比较中还考虑了数组的键。因此,只有在第一个数组中出现,且在所有其他输入数组中也出现的键/值对才返回到结果数组中。
你以为你以为de
2015-06-26 · 知道合伙人软件行家
你以为你以为de
知道合伙人软件行家
采纳数:503 获赞数:1339
某培训机构毕业,大专学位。工作2年,喜欢百度知道答题,可以互相学习共通过进步。

向TA提问 私信TA
展开全部
<?php
$a1=array(0=>"Cat",1=>"Dog",2=>"Horse");
$a2=array(3=>"Horse",4=>"Dog",5=>"Fish");
print_r(array_intersect($a1,$a2));
?>

输出:
Array ( [1] => Dog [2] => Horse )

那你里不是已经实现了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lixiaosha666
推荐于2016-07-18 · 超过46用户采纳过TA的回答
知道小有建树答主
回答量:97
采纳率:100%
帮助的人:57.6万
展开全部
$arr=array(
array('a','b','c'),
array('a','b'),
array('a'),
);

if(count($arr)>0){
foreach($arr as $key=>$val){
if($key==0){//第一个先取出来
$tmp_arr = $val;
}else{
$tmp_arr = array_intersect_assoc($tmp_arr,$val);
}
}

}
print_r($tmp_arr);
exit;
百度上就有
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
秋日的思雨wy
2015-06-26 · 超过72用户采纳过TA的回答
知道小有建树答主
回答量:199
采纳率:0%
帮助的人:165万
展开全部
array_intersect参数是数组啊
追问
是数组啊 ,关键是怎么写啊
这里 $arr[0],$arr[1],$arr[2] 我是举得例子 这里$arr是个n个子集的,的用个变量代替这些啊,该怎么写?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式