php 二维数组根据某字段去重

有时候,查询出来的数组会有好多重复的数据,要想去除这些数据,有以下几种方法:

第一种:二维数组中直接去掉重复的键

<?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;
}

第二种:二维数组去掉重复值再拼接成新的数组

<?php
function array_unique_fb($array2D){
 foreach ($array2D as $k=>$v){
  $v=join(',',$v); //降维,也可以用implode,将一维数组转换为用逗号连接的字符串
  $temp[$k]=$v;
 }
 $temp=array_unique($temp); //去掉重复的字符串,也就是重复的一维数组 
 foreach ($temp as $k => $v){
  $array=explode(',',$v); //再将拆开的数组重新组装
  //下面的索引根据自己的情况进行修改即可
  $temp2[$k]['id'] =$array[0];
  $temp2[$k]['title'] =$array[1];
  $temp2[$k]['keywords'] =$array[2];
  $temp2[$k]['content'] =$array[3];
 }
 return $temp2;
}

但是上面两种,都是把二维数组转换为一维数组后每组数据进行对比,必须一模一样才能去除,要是我有几组数据除一个字段不一样,其他都一样,该怎么去除这些重复的数据呢

<?php
    //$arr->传入数组   $key->判断的key值  
     function array_unset_tt($arr,$key){     
            //建立一个目标数组  
            $res = array();        
            foreach ($arr as $value) {           
               //查看有没有重复项  
               if(isset($res[$value[$key]])){  
                  unset($value[$key]);  //有:销毁  
               }else{    
                  $res[$value[$key]] = $value;  
               }    
            }  
            return $res;  
        }  



  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值