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



阅读更多
换一批

没有更多推荐了,返回首页