注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

~~

~~

 
 
 

日志

 
 

php 二维数组去重  

2012-12-04 11:17:36|  分类: php |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
/**
*  说明:二维数组去重
*
*  @param    array2D    要处理二维数组
*  @param    stkeep     是否保留一级数组键值(默认不保留)
*  @param    ndformat   是否保留二级数组键值(默认保留)
*
*  @return   output     返回去重后的数组
*/
function unique_arr($array2D,$stkeep=false,$ndformat=true){
if($stkeep){    //一级数组键可以为非数字
   $stArr = array_keys($array2D);
}
if($ndformat){   //二级数组键必须相同
    $ndArr = array_keys(end($array2D));
}
foreach ($array2D as $v){  //降维
$v = join(",",$v);
$temp[] = $v;
}
$temp = array_unique($temp);
foreach ($temp as $k => $v){  //数组重新组合
if($stkeep){
   $k = $stArr[$k];
}
if($ndformat){
$tempArr = explode(",",$v);
foreach($tempArr as $ndkey => $ndval){
    $output[$k][$ndArr[$ndkey]] = $ndval;
}
}else{
    $output[$k] = explode(",",$v);
}
}
return $output;
}


还有一种方法是通过php中 array_flip()【返回一个反转后的数组,如果同一值出现了多次,则最后一个键名将作为它的值,所有其他的键名都将丢失
即:
$arr = array("a" =>a, "b" =>b, "c"=>a);
$arr = array_flip(array_flip($arr));
print_r($arr);
也可以实现二维数组的去重.
  评论这张
 
阅读(1324)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018