示例1: /** * 二维数组按照指定键值去重 * @param $arr 需要去重的二维数组 * @param $key 需要去重所根据的索引 * @return mixed */ function arr_uniq($arr,$key){ $key_arr = []; foreach ($arr as $k => $v) { if (in_array($v[$key],$key_arr)) { unset($arr[$k]); } else { $key_arr[] = $v[$key]; } } sort($arr); return $arr; } 去重示例: $lanshou = '揽收'; $paijian = '派件'; $qianshou = '签收'; $quchongnewarr = arr_uniq($newarr,'status'); //二维数组去重 foreach($quchongnewarr as $key=>$value){ if(array_search($lanshou,$value)){ $newarr2['title'] = '已发货'; $newarr2['date'] = $value['time']; } if(array_search($paijian,$value)){ $newarr3['title'] = '已到达,待客服签收'; $newarr3['date'] = $value['time']; } if(array_search($qianshou,$value)){ $newarr4['title'] = '已签收'; $newarr4['date'] = $value['time']; // break; } } 示例2: /** * 二维数组按指定的键值排序 * @param $array 需要排序的二维数组 * @param $keys 需要排序根据的索引 * @param string $type 正序/倒叙(默认倒序) * @return array|string */ function array_sort( $array, $keys, $type='asc'){ if( !isset( $array ) || !is_array( $array ) || empty( $array ) ) return ''; if( !isset( $keys ) || trim( $keys ) == '' ) return ''; if( !isset( $type ) || $type == '' || !in_array( strtolower( $type ), array( 'asc', 'desc' ) ) ) return ''; $keysvalue = []; foreach( $array as $key => $val ) { $val[ $keys ] = str_replace( '-', '', $val[ $keys ] ); $val[ $keys ] = str_replace( ' ', '', $val[ $keys ] ); $val[ $keys ] = str_replace( ':', '', $val[ $keys ] ); $keysvalue[] = $val[ $keys ]; } asort( $keysvalue ); //key值排序 reset( $keysvalue ); //指针重新指向数组第一个 foreach( $keysvalue as $key => $vals ) $keysort[] = $key; $keysvalue = []; $count = count( $keysort ); if( strtolower( $type ) != 'asc' ) { for( $i = $count - 1; $i >= 0; $i-- ) $keysvalue[] = $array[ $keysort[ $i ] ]; }else{ for( $i = 0; $i < $count; $i++ ) $keysvalue[] = $array[ $keysort[ $i ] ]; } return $keysvalue; } 示例3: //二维数组按键值去重 function array_unique_by_key($array, $key) { $unique = array(); foreach ($array as $value) { if (!array_key_exists($value[$key], $unique)) { $unique[$value[$key]] = $value; } } return array_values($unique); } // 示例数组 $array = array( array('id' => 1, 'name' => 'Alice'), array('id' => 2, 'name' => 'Bob'), array('id' => 1, 'name' => 'Alice'), array('id' => 3, 'name' => 'Charlie'), ); // 按 'id' 键值去重 $result = array_unique_by_key($array, 'id'); print_r($result);