php二维数组根据key去重

 

一、性能高,不易理解:

/**
 * 二维数组去重
 * @param $array    二维数组
 * @param $field    根据二维数组中的某个字段进行去重
 * @return array|false
 */
public function array_unique_key($array,$field)
 {
     if(empty($array) || !$field){
         return false;
     }
     //返回指定字段的一列数据
     $fields = array_column($array, $field);
     //去重
     $fields = array_unique($fields);
     //比较两个数组,返回交集,只比较键(key)
     $data   = array_intersect_key($array,$fields);
     //重置数组的键(key)
     $data   = array_values($data);
     return $data;
 }

 

二、性能低,容易理解:

 

public function array_unique_key($arr,$key)
{
$tmp_arr=array(); foreach($arr as $k => $v){ if(in_array($v[$key],$tmp_arr)){ //判断是否重复 unset($arr[$k]); //重复则删除 }else{ $tmp_arr[]=$v[$key]; //将值存储在临时数组中 } } return $arr; }

 

posted @ 2023-08-22 21:36  程序员小艺  阅读(165)  评论(0编辑  收藏  举报