php专区

 首页 > php专区 > PHP基础 > 数组 > php对数组元素去重复值 - php数组

php对数组元素去重复值 - php数组

分享到:
【字体:
导读:
          最简单的办法利用php自带的函数用array_flip实现去重效果,另一个方法是使用php的array_flip函数来间接的实现去重效果,array_flip是反转数...

php对数组元素去重复值

最简单的办法利用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. ?> 
分享到:
php数组提示Notice: Undefined offset解...
php数组提示Notice: Undefined offset解决办法 我们在使用数组时经常会碰到数组不存在了,导致我们珍array[100]这样时出现Notice: Undefined offset错误,下面我来给大家介绍如何解决这种问题,例:代码如下 $array[1] ='www.phpfensi.com';  echo $array[0] ;  输...
php删除数组中的空值或指定值操作 - php...
php删除数组中的空值或指定值操作 首先我们来看看关于php如何操作数组中的空值的多种方法 一,implode();  用implode()将数组输出为字符串,判断输出的字串是否为空。初看上去似乎是个不错的方法,可惜跟上一点一样,对于二维以上数组就不行了。举个例子: $arr= array(array(),arr...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……