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; }
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: PHP中使用for循环来遍历下标连续的二维索引数组
- 下一篇: PHP中汉字截取