时间:2021-07-01 10:21:17 帮助过:12人阅读
|
为大家介绍几个php输出数组中的重名元素的方法,有需要的朋友,可以参考下。
方法1、直接用php的内置函数array_intersect() array array_intersect ( array $array1 , array $array2 [, array $ ... ] ) array_intersect() 返回一个数组,该数组包含了所有在 array1 中也同时出现在所有其它参数数组中的值。注意键名保留不变。 例子:
"green", "red", "blue");
$array2 = array("b" => "green", "yellow", "red");
$result = array_intersect($array1, $array2);
?>
输出结果: Array( [a] => green [0] => red) 方法2、自己实现的算法
";
$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、自定义递归函数
";
print_r(my_array_intersect($array1, $array2));
echo "";
?>
说明: 一维数组的话,第三种算法比第一种快点。 上述算法都适用于一维的数组,那么多维数组怎么查找相同的元素呢? 这里提供一种思路:可以把多维的数组转化成一维的数组,然后再利用上述算法输出。 例子:
$v){
if (!is_array($v)) {
$str.=$v." ";
}
else{
$str.=toarr($v);
}
}
return $str;
}/*递归函数结束*/
?>
以上代码实现多维数组转化成字符串,然后使用expode函数转化成一维数组即可。 试想一下,数据库返回某一字段重名的值也是这个道理,这个通过sql语句也是可以实现的。 编程就是这样,条条大道通罗马,举一返三,触类而旁通,多学多练多实践,功到自然成啊。 程序员之家,祝大家学习进步。 |