需求:按照age升序或降序排序
array(
'0'=>array('age'=>50,'name'=>'kobe'),
'1'=>array('age'=>60,'name'=>'tom'),
'2'=>array('age'=>40,'name'=>'jack')
)
结果:
array(
'2'=>array('age'=>40,'name'=>'jack')
'0'=>array('age'=>50,'name'=>'kobe'),
'1'=>array('age'=>60,'name'=>'tom'),
)
问:有没有现成的php函数能解决这个问题的?
解决:
想必是没这么牛逼的函数,找一个
function sortArrByField(&$array, $field, $desc = false){
$fieldArr = array();
foreach ($array as $k => $v) {
$fieldArr[$k] = $v[$field];
}
$sort = $desc == false ? SORT_ASC : SORT_DESC;
array_multisort($fieldArr, $sort, $array);
}
$arr = array(
'0'=>array('age'=>50,'name'=>'kobe'),
'1'=>array('age'=>60,'name'=>'tom'),
'2'=>array('age'=>40,'name'=>'jack')
);
sortArrByField(&$arr,'age',true);
var_dump($arr);exit();
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
嗯,二维数组排序直接用
array_multisort行不同的,我给你我之前用过的一个方法你参考试试建议看看 array_multisort , 用这个array_multisort可以很方便的写出一个自己更方便使用的multi_array_sort
array_multisort
http://php.net/manual/zh/func...
根据 array_multisort 自定义一个排序