对多个数组或多维数组进行排序
#关于array_multisort 可以用来一次对多个数组进行排序,或者根据某一维或多维对多维数组进行排序。
bool array_multisort ( array &$array1 [, mixed $array1_sort_order = SORT_ASC [, mixed $array1_sort_flags = SORT_REGULAR [, mixed $... ]]] )
我们先来看一段案例:
$data=[
['card'=>"中信银行",'id'=>"1481",'day'=>'9','repay'=>'29','limit'=>"40000"],
['card'=>"民生银行",'id'=>"1481",'day'=>'17','repay'=>'19','limit'=>"50000"],
['card'=>"交通银行",'id'=>"1441",'day'=>'18','repay'=>'25','limit'=>"60000"],
['card'=>"招商银行",'id'=>"1481",'day'=>'5', 'repay'=>'9','limit'=>"70000"]
];
现在我们需要按还款日最近的前面进行排序
$sort= array_map(create_function('$n', 'return $n["repay"];'), $data);
array_multisort($sort,SORT_DESC,$data );
array(4) {
[0]=>
array(5) {
["card"]=>
string(12) "中信银行"
["id"]=>
string(4) "1481"
["day"]=>
string(1) "9"
["repay"]=>
string(2) "29"
["limit"]=>
string(5) "40000"
}
[1]=>
array(5) {
["card"]=>
string(12) "交通银行"
["id"]=>
string(4) "1441"
["day"]=>
string(2) "18"
["repay"]=>
string(2) "25"
["limit"]=>
string(5) "60000"
}
[2]=>
array(5) {
["card"]=>
string(12) "民生银行"
["id"]=>
string(4) "1481"
["day"]=>
string(2) "17"
["repay"]=>
string(2) "19"
["limit"]=>
string(5) "50000"
}
[3]=>
array(5) {
["card"]=>
string(12) "招商银行"
["id"]=>
string(4) "1481"
["day"]=>
string(1) "5"
["repay"]=>
string(1) "9"
["limit"]=>
string(5) "70000"
}
}
参考http://php.net/manual/zh/function.array-multisort.php