php大数组怎么求交集
这里这个$arr是个二维数组,怎么求它里面各个数组的交集$jiaoji=array_intersect($str);关键是这个$str该怎么写,该怎么循环写出来呢...
这里这个$arr 是个二维数组,怎么求它里面各个数组的交集$jiaoji = array_intersect($str);关键是这个$str 该怎么写 ,该怎么循环写出来呢
展开
4个回答
2016-01-19 · 知道合伙人软件行家
关注
展开全部
在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()基本相同,只不过他在比较中还考虑了数组的键。因此,只有在第一个数组中出现,且在所有其他输入数组中也出现的键/值对才返回到结果数组中。
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()基本相同,只不过他在比较中还考虑了数组的键。因此,只有在第一个数组中出现,且在所有其他输入数组中也出现的键/值对才返回到结果数组中。
2015-06-26 · 知道合伙人软件行家
关注
展开全部
<?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 )
那你里不是已经实现了
$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 )
那你里不是已经实现了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
$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;
百度上就有
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;
百度上就有
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
array_intersect参数是数组啊
追问
是数组啊 ,关键是怎么写啊
这里 $arr[0],$arr[1],$arr[2] 我是举得例子 这里$arr是个n个子集的,的用个变量代替这些啊,该怎么写?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询