0, '已使用' => 1, '不可用' => 2, '已失效' => 3, '已过期' => 4 ]; $typeSort = [0, 2, 4, 3, 1, 5]; // 未使用0、已使用1、不可用、已失效、已过期排序, (0可用 1不可用 2已过期 3 已失效 4 已使用 5冻结 //isset($v['9']) && array_key_exists($v['9'], $typeSort) && $v[] = $typeSort[$v['9']]; isset($v[2]) && array_key_exists($v[2], $typeSort) && $v['typesort'] = $typeSort[$v[2]]; * 无限参数排序 * @return array|mixed function arrayOrderby() { $args = func_get_args(); $data = array_shift($args); if (!$data) return []; foreach ($args as $n => $field) { if (is_string($field)) { $tmp = array(); foreach ($data as $key => $row) { $tmp[$key] = $row[$field]; } $args[$n] = $tmp; } } $args[] = &$data; call_user_func_array('array_multisort', $args); return array_pop($args); } */ $typeSort = [0, 4, 1, 3, 2, 5]; var_dump(array_key_exists(5, $typeSort)); $arr = array( '0' => array( 'id' => 3, 'age' => 27, ), '1' => array( 'id' => 5, 'age' => 50, ), '2' => array( 'id' => 4, 'age' => 44, ), '3' => array( 'id' => 3, 'age' => 78, ), ); // foreach ($arr as $key => $row) { // $id[$key] = $row['id']; // $age[$key] = $row['age']; // } // array_multisort($id, SORT_ASC, $age, SORT_DESC, $arr); // print_r($arr); $result2 = arrayOrderby($arr, 'id', SORT_ASC, 'age', SORT_DESC); print_r($result2); //这个方法是高 function arrayOrderby() { $args = func_get_args(); $data = array_shift($args); foreach ($args as $n => $field) { if (is_string($field)) { $tmp = array(); foreach ($data as $key => $row) { $tmp[$key] = $row[$field]; } $args[$n] = $tmp; } } $args[] = &$data; call_user_func_array('array_multisort', $args); return array_pop($args); } $data = [ ['Name' => 'Brown', 'Animal' => 'Yiwu'], ['Name' => 'Brown', 'Animal' => 'Dog'], ['Name' => 'Smith', 'Animal' => 'Cat'], ['Name' => 'Jones', 'Animal' => 'Dog'], ['Name' => 'Jones', 'Animal' => 'Pig'], ['Name' => 'Bennett', 'Animal' => 'Cat'], ['Name' => 'Astor', 'Animal' => 'Cat'], ['Name' => 'Jones', 'Animal' => 'Cat'], ]; $data = arrayOrderby($data, 'Name', SORT_ASC, 'Animal', SORT_DESC); print_r($data); /** * Array ( [0] => Array ( [Name] => Astor [Animal] => Cat ) [1] => Array ( [Name] => Bennett [Animal] => Cat ) [2] => Array ( [Name] => Brown [Animal] => Yiwu ) [3] => Array ( [Name] => Brown [Animal] => Dog ) [4] => Array ( [Name] => Jones [Animal] => Pig ) [5] => Array ( [Name] => Jones [Animal] => Dog ) [6] => Array ( [Name] => Jones [Animal] => Cat ) [7] => Array ( [Name] => Smith [Animal] => Cat ) ) */ ?>