怎么取出多个数组中的相同元素?

dehong 2009-09-23 05:26:14
$a = array("a","b","c","d");
$b = array("a","x","s","f","g");
$c = array("k","w","a","n","b","x");
$d = array("p","q","j","v","f","x");

我的目的是查个数组元素中相同的值,然后输出数组名与相应的值。如:

$a = $b = $c 值为 a
$a = $c 值为 b
$b = $c = $d 值为 x

……

从第一个数组元素开始查别的数组是否存在这个元素,查完后输出存在这个元素的所有数组名,以及这个元素。
...全文
394 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
江南昆虫 2009-09-24
  • 打赏
  • 举报
回复
<pre>
<?php
$a = array("a","b","c","d");
$b = array("a","x","s","f","g");
$c = array("k","w","a","n","b","x");
$d = array("p","q","j","v","f","x");
$arr_arr = array('a','b','c','d');
$out = array();

for ($i=0;$i<count($arr_arr)-1;$i++){
foreach (${$arr_arr[$i]} as $v){
if (!array_key_exists($v,$out)){
$out[$v][] = '$'.$arr_arr[$i];
for ($j=$i+1;$j<count($arr_arr);$j++){
if (in_array($v,${$arr_arr[$j]})) $out[$v][] = '$'.$arr_arr[$j];
}
}
}
}

foreach ($out as $k => $row){
if (count($row)>1){echo implode(' = ',$row).' 值为 '.$k."\n";}
}
?>
</pre>
ms_X0828 2009-09-24
  • 打赏
  • 举报
回复
到这里是要常来的,自己有什么问题大家可以帮我一起解决,你也可以帮别人解决问题。
这样对提升自己的php努力是有很大的帮助的。
dehong 2009-09-24
  • 打赏
  • 举报
回复
谢谢!大家的帮助,以后我要常来这逛,向大家多学习学习。
阿_布 2009-09-23
  • 打赏
  • 举报
回复

<?php
$a = array("a","b","c","d");
$b = array("a","x","s","f","g");
$c = array("k","w","a","n","b","x");
$d = array("p","q","j","v","f","x");
$arr_join = array_merge($a,$b,$c,$d);
$arr_uni = array_unique($arr_join);
foreach ($arr_uni as $arr){
echo "值$arr  ";
if(in_array($arr,$a)) echo "数组a  ";
if(in_array($arr,$b)) echo "数组b  ";
if(in_array($arr,$c)) echo "数组c  ";
if(in_array($arr,$d)) echo "数组d  ";
echo "<br>";
}
?>
billhu001 2009-09-23
  • 打赏
  • 举报
回复

1,将各个数组排列组合,然后计算各个组合的交集。
2,对交集函数的结果进行分析,如果有交集就输出当前的数组组合+相同的元素。

应当就能实现你说的功能了。
梁宽 2009-09-23
  • 打赏
  • 举报
回复
把数组合并后循环 应该能吧
dzxccsu 2009-09-23
  • 打赏
  • 举报
回复
仅仅交集是不够的,下班了,回去看下!
wang_feng1984 2009-09-23
  • 打赏
  • 举报
回复
array_intersect -- 计算数组的交集

$array1 = array("a" => "green", "red", "blue");
$array2 = array("b" => "green", "yellow", "red");
$result = array_intersect($array1, $array2);


这使得 $result 成为:

Array
(
[a] => green
[0] => red
)
xiaolei1982 2009-09-23
  • 打赏
  • 举报
回复
php里面有现成的取数组交集的函数,不知是否满足你的需要

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧