PHP输出数组中重名的元素的几种处理方法
发布时间:2020-12-13 06:09:47 所属栏目:PHP教程 来源:网络整理
导读:1.可以直接用php的内置函数array_intersect() array array_intersect ( array $array1,array $array2 [,array $ ... ] ) array_intersect() 返回一个数组,该数组包含了所有在 array1 中也同时出现在所有其它参数数组中的值。注意键名保留不变。 代码: 代码
1.可以直接用php的内置函数array_intersect() array array_intersect ( array $array1,array $array2 [,array $ ... ] ) array_intersect() 返回一个数组,该数组包含了所有在 array1 中也同时出现在所有其它参数数组中的值。注意键名保留不变。 代码: 代码如下: $array1 = array("a" => "green","red","blue"); $array2 = array("b" => "green","yellow","red"); $result = array_intersect($array1,$array2); ?> 输出结果: Array( [a] => green [0] => red) 2.也可以自己写一个算法: 代码如下: function my_array_same($a){ $b = array_unique($a); $r = array_diff_key($a,$b); echo " "; 输出结果: array(2) { [3]=> string(3) "red" [5]=> string(4) "pink" } 3.还可以这么写: 代码如下: function my_array_intersect($arr1,$arr2){ for($i=0;$i } for($i=0;$i } sort($temp); $get=array(); for($i=0;$i $get[]=$temp[$i]; } return $get; } $array1 = array("green","blue"); $array2 = array("green","red"); echo " "; 如果是一维的数组,第三种算法比第一种快点.上述算法都适用于一维的数组,那么多维数组怎么查找相同的元素呢? 思路:可以把多维的数组转化成一维的数组,然后再利用上述算法输出。 代码: 代码如下: function toarr($arr){ //对数组进行递归,以字符串形式返回 foreach ($arr as $k=>$v){ if (!is_array($v)) { $str.=$v." "; } else{ $str.=toarr($v); } } return $str; }/*递归函数结束*/ 上式把多维数组转化成字符串,然后利用expode函数转化成一维数组即可。 联想一下,数据库返回某一字段重名的值也是这个道理,当然通过sql语句也能够实现。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |