php数组⼆维排序⽅法,php⼆维数组多维度排序⽅法
拉萨吧核⼼函数array_multisort ,
定义和⽤法
array_multisort() 函数返回排序数组。您可以输⼊⼀个或多个数组。函数先对第⼀个数组进⾏排序,接着是其他数组,如果两个或多个值相同,它将对下⼀个数组进⾏排序。
注释:字符串键名将被保留,但是数字键名将被重新索引,从 0 开始,并以 1 递增。
注释:您可以在每个数组后设置排序顺序和排序类型参数。如果没有设置,每个数组参数会使⽤默认值。
array_multisort(array1,sorting order,sorting type,array2,array3…)
参数
羊肠小路
描述
array1
必需。规定数组。
sorting order
可选。规定排列顺序。可能的值:
SORT_ASC – 默认。按升序排列 (A-Z)。
SORT_DESC – 按降序排列 (Z-A)。
sorting type
可选。规定排序类型。可能的值:
SORT_REGULAR – 默认。把每⼀项按常规顺序排列(Standard ASCII,不改变类型)。
SORT_NUMERIC – 把每⼀项作为数字来处理。
SORT_STRING – 把每⼀项作为字符串来处理。
SORT_LOCALE_STRING – 把每⼀项作为字符串来处理,基于当前区域设置(可通过 tlocale() 进⾏更改)。
SORT_NATURAL – 把每⼀项作为字符串来处理,使⽤类似 natsort() 的⾃然排序。
SORT_FLAG_CASE – 可以结合(按位或)SORT_STRING 或 SORT_NATURAL 对字符串进⾏排序,不区分⼤⼩写。
array2
可选。规定数组。
array3
可选。规定数组。
/**
* ⼆维数组按指定字段排序
* @param $arrays
* @param $sort_key
合作作文600字
* @param int $sort_order
* @param int $sort_type奴巾是什么字
* @return array
*/
function array_sort($arrays,$sort_key,$sort_order=SORT_ASC,$sort_type=SORT_NUMERIC){ if(is_array($arrays)){
foreach ($arrays as $array){
if(is_array($array)){
$key_arrays[] = $array[$sort_key];
}el{
continue;
怎样保护地球
}
}
}el{德育原理
return $arrays;
}
array_multisort($key_arrays,$sort_order,$sort_type,$arrays);
return $arrays;
}
/**
* ⼆维数组指定多字段排序
* @return mixed|null
*/
function sortArrByManyField() {
东北煎饼
$args = func_get_args();
if(empty($args)){
return null;
江南春唐杜牧}
$arr = array_shift($args);
foreach($args as $key => $field){
if(is_string($field)){
$temp = array();
foreach($arr as $index=> $val){
$temp[$index] = $val[$field];
}
$args[$key] = $temp;
}
}
$args[] = &$arr;//引⽤值
call_ur_func_array('array_multisort',$args);
return array_pop($args);
}
array_sort($arr,’id’,SORT_DESC);
sortArrByManyField($arr,’id’,SORT_DESC,’time’,SORT_ASC);