首页 > 编程 > PHP > 正文

php数组去重实例及分析

2020-03-22 17:57:42
字体:
来源:转载
供稿:网友
一维数组的重复项: 使用array_unique函数即可,使用实例如下:
复制代码 代码如下:
?php
$aa=array("apple","banana","pear","apple","wail","watermalon");
$bb=array_unique($aa);
print_r($bb);
?

结果如下:Array ( [0] = apple [1] = banana [2] = pear [4] = wail [5]= watermalon ) 。 二维数组的重复项: 对于二维数组咱们分两种情况讨论,一种是因为某一键名的值不能重复,删除重复项;另一种因为内部的一维数组不能完全相同,而删除重复项,下面举例说明: ㈠因为某一键名的值不能重复,删除重复项
复制代码 代码如下:
?php
function assoc_unique($arr, $key)
{
$tmp_arr = array();
foreach($arr as $k = $v)
{
if(in_array($v[$key],$tmp_arr))//搜索$v[$key]是否在$tmp_arr数组中存在,若存在返回true
{
unset($arr[$k]);
}
else {
$tmp_arr[] = $v[$key];
}
}
sort($arr); //sort函数对数组进行排序
return $arr;
} $aa = array(
array('id' = 123, 'name' = '张三'),
array('id' = 123, 'name' = '李四'),
array('id' = 124, 'name' = '王五'),
array('id' = 125, 'name' = '赵六'),
array('id' = 126, 'name' = '赵六')
);
$key = 'id';
assoc_unique(&$aa, $key);
print_r($aa);
?

显示结果为:Array ( [0] = Array ( [id] = 123 [name] = 张三 ) [1] = Array ([id] = 124 [name] = 王五 ) [2]= Array ( [id] = 125 [name]= 赵六 ) [3] = Array ( [id]= 126 [name] = 赵六 ) ) ㈡因内部的一维数组不能完全相同,而删除重复项
复制代码 代码如下:
?php
function array_unique_fb($array2D){
foreach ($array2D as $v){
$v = join(",",$v); //降维,也可以用implode,将一维数组转换为用逗号连接的字符串
$temp[] = $v;
}
$temp =array_unique($temp); //去掉重复的字符串,也就是重复的一维数组
foreach ($temp as $k = $v){
$temp[$k] = explode(",",$v); //再将拆开的数组重新组装
}
return $temp;
} $aa = array(
array('id' = 123, 'name' = '张三'),
array('id' = 123, 'name' = '李四'),
array('id' = 124, 'name' = '王五'),
array('id' = 123, 'name' = '李四'),
array('id' = 126, 'name' = '赵六')
);
$bb=array_unique_fb($aa);
print_r($bb)
?

显示结果:Array ( [0] = Array ( [0] = 123 [1] = 张三 ) [1] = Array ( [0]= 123 [1] = 李四 ) [2]= Array ( [0] = 124 [1]= 王五 ) [4] = Array ( [0]= 126 [1] = 赵六 ))PHP教程

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表