PHP输出数组中重名的元素的几种方法
2011-05-03 16:53
549 查看
1.可以直接用php的内置函数array_intersect()
array_intersect() 返回一个数组,该数组包含了所有在 array1 中也同时出现在所有其它参数数组中的值。注意键名保留不变。
代码:
输出结果:
2.也可以自己写一个算法:
输出结果:
3.还可以这么写:
如果是一维的数组,第三种算法比第一种快点.上述算法都适用于一维的数组,那么多维数组怎么查找相同的元素呢?
思路:可以把多维的数组转化成一维的数组,然后再利用上述算法输出。
代码:
上式把多维数组转化成字符串,然后利用expode函数转化成一维数组即可。
联想一下,数据库返回某一字段重名的值也是这个道理,当然通过sql语句也能够实现。
array array_intersect ( array $array1 , array $array2 [, array $ ... ] )
array_intersect() 返回一个数组,该数组包含了所有在 array1 中也同时出现在所有其它参数数组中的值。注意键名保留不变。
代码:
<?php $array1 = array("a" => "green", "red", "blue"); $array2 = array("b" => "green", "yellow", "red"); $result = array_intersect($array1, $array2); ?>
输出结果:
Array( [a] => green [0] => red)
2.也可以自己写一个算法:
<?php function my_array_same($a){ $b = array_unique($a); $r = array_diff_key($a,$b); echo "<pre>"; $k=var_dump(array_unique($r)); return $k; } $a = array("red", "green", "pink", "red", "yellow","pink", "red"); $r=my_array_same($a); var_dump(array_unique($r)); ?>
输出结果:
array(2) { [3]=> string(3) "red" [5]=> string(4) "pink" }
3.还可以这么写:
<?php function my_array_intersect($arr1,$arr2){ for($i=0;$i<count($arr1);$i++){ $temp[]=$arr1[$i]; } for($i=0;$i<count($arr1);$i++){ $temp[]=$arr2[$i]; } sort($temp); $get=array(); for($i=0;$i<count($temp);$i++){ if($temp[$i]==$temp[$i+1]) $get[]=$temp[$i]; } return $get; } $array1 = array("green", "red", "blue"); $array2 = array("green", "yellow", "red"); echo "<pre>"; print_r(my_array_intersect($array1, $array2)); echo "<pre/>"; ?>
如果是一维的数组,第三种算法比第一种快点.上述算法都适用于一维的数组,那么多维数组怎么查找相同的元素呢?
思路:可以把多维的数组转化成一维的数组,然后再利用上述算法输出。
代码:
function toarr($arr){ //对数组进行递归,以字符串形式返回 foreach ($arr as $k=>$v){ if (!is_array($v)) { $str.=$v." "; } else{ $str.=toarr($v); } } return $str; }/*递归函数结束*/
上式把多维数组转化成字符串,然后利用expode函数转化成一维数组即可。
联想一下,数据库返回某一字段重名的值也是这个道理,当然通过sql语句也能够实现。
相关文章推荐
- PHP输出数组中重名的元素的几种处理方法
- PHP输出数组中重名的元素的几种处理方法
- PHP输出数组中重名的元素的几种处理方法
- php删除数组中指定值的元素的几种方法
- php删除数组中指定值的元素的几种方法
- PHP中数组定义的几种方法
- PHP调试中常用的几种输出方法
- PHP中数组定义的几种方法
- PHP中2种方法快速地合并数组,你知道吗?合并两个数组有几种方式,试比较它们的异同
- php计算数组不为空元素个数的方法
- PHP调试中常用的几种输出方法
- PHP数组中头部和尾部添加元素的方法(array_unshift,array_push)
- 给调用函数传递数组的元素个数的几种有效方法
- 几种顺序打印php数组的方法
- PHP数组的几种赋值方法
- iOS开发之把数组中的元素进行随机排序、随机数产生的几种方法
- 无序数组中是否包含某一个要找的元素的几种方法
- PHP实现查询两个数组中不同元素的方法
- php求数组全排列,元素所有组合的方法总结
- php实现搜索一维数组元素并删除二维数组对应元素的方法