频道栏目
首页 > 资讯 > 数组 > 正文

php对数组元素去重复值

16-01-06        来源:[db:作者]  
收藏   我要投稿

最简单的办法利用php自带的函数用array_flip实现去重效果,另一个方法是使用php的array_flip函数来间接的实现去重效果,array_flip是反转数组键和值的函数,他有个特性就是如果数组中有二个值是一样的,那么反转后会保留最后一个键和值.利用这个特性我们用他来间接的实现数组的去重.代码如下:

  1. $arr = array("a"=>"a1","b"=>'b1',"c"=>"a2","d"=>"a1"); 
  2. $arr1 = array_flip($arr); 
  3. print_r($arr1);//先反转一次,去掉重复值,输出Array ( [a1] => d [b1] => b [a2] => c ) 
  4. $arr2 = array_flip($arr); 
  5. print_r($arr2);//再反转回来,得到去重后的数组,输出Array ( [a1] => d [b1] => b [a2] => c ) 
  6. $arr3 = array_unique($arr); 
  7. print_r($arr3);//利用php的array_unique函数去重,输出Array ( [a] => a1 [b] => b1 [c] => a2 ) 
  8. ?> 

用户自定义函数操作,代码如下:

  1. function assoc_unique($arr, $key) {  
  2.  $tmp_arr = array();  
  3.  foreach($arr as $k => $v) {  
  4.   if(in_array($v[$key], $tmp_arr)) {  
  5.    unset($arr[$k]);  
  6.   } else {  
  7.    $tmp_arr[] = $v[$key];  
  8.   }  
  9.  }  
  10.  sort($arr);  
  11.  return $arr;  
  12. $aa = array(  
  13.  array('id' => 123, 'name' => '淡淡清香弥漫世界'),  
  14.  array('id' => 123, 'name' => '螃蟹'),  
  15.  array('id' => 124, 'name' => '前端开发者'),  
  16.  array('id' => 125, 'name' => '螃蟹'),  
  17.  array('id' => 126, 'name' => 'HTML5研究者')  
  18. );  
  19. $key = 'name';  
  20. assoc_unique(&$aa, $key);  
  21. print_r($aa); 
  22. ?> 
相关TAG标签
上一篇:PHP数组传递给JavaScript以及json_encode的gbk中文乱码
下一篇:php数组提示Notice: Undefined offset解决办法
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站