//根据二维数组相同值来分组 public static function array_group_by($arr, $key) { $grouped = []; foreach ($arr as $value) { $grouped[$value[$key]][] = $value; } if (func_num_args() > 2) { $args = func_get_args(); foreach ($grouped as $key => $value) { $parms = array_merge([$value], array_slice($args, 2, func_num_args())); $grouped[$key] = call_user_func_array('array_group_by', $parms); } } //分数排序 foreach ($grouped as &$_group) { $arrSort = array(); foreach($_group as $r_key => $r_val){ foreach($r_val as $key => $val){ $arrSort[$key][$r_key] = $val; } } } return $grouped; }