//將二維數組按某一元素的降序或者升序來重新排序,
//
//方法一.以下.稍微復雜一點
$arrUsers = array(
array(
'id' => 1,
'name' => '張三',
'age' => 25,
),
array(
'id' => 2,
'name' => '李四',
'age' => 23,
),
array(
'id' => 3,
'name' => '王五',
'age' => 40,
),
array(
'id' => 4,
'name' => '趙六',
'age' => 31,
),
array(
'id' => 5,
'name' => '黃七',
'age' => 20,
),
);
$sort = array(
'direction' => 'SORT_DESC', //排序順序標志 SORT_DESC 降序;SORT_ASC 升序
'field' => 'age', //排序字段
);
$arrSort = array();
foreach($arrUsers AS $uniqid => $row){
foreach($row AS $key=>$value){
$arrSort[$key][$uniqid] = $value;
}
}
if($sort['direction']){
array_multisort($arrSort[$sort['field']], constant($sort['direction']), $arrUsers);
}
var_dump($arrUsers);
//方法二.簡單一點的方法,$field需要排序的鍵,
//array_multisort() 函數返回排序數組:
//array_multisort — 對多個數組或多維數組進行排序
$field = 'age';
array_multisort(array_column($arr, $field), SORT_DESC, $arr);