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

来源:互联网 发布:军训合照能上传网络吗 编辑:程序博客网 时间:2024/06/01 09:38

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

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

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

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

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



原创粉丝点击