作者:mobiledu2502902687 | 来源:互联网 | 2018-05-22 21:50
php
$arr = array(
'100'=>array('age'=>22,'name'=>'jack','date'=>'2014'),
'110'=>array('age'=>23,'name'=>'mary','date'=>'2012'),
'120'=>array('age'=>24,'name'=>'lilei','date'=>'2015')
);
array_multisort对数组按age倒序后date倒序,然后120被重新索引为0,怎么保持呢?目前是用$arr_another = $arr保留原数组
//感谢公子
uasort($arr, function($a, $b) {
if( $a['age'] === $b['age'] ){
return $a['date'] - $b['date'];
}
return $a['age'] - $b['age'];
});
print_r($arr);
回复内容:
php
$arr = array(
'100'=>array('age'=>22,'name'=>'jack','date'=>'2014'),
'110'=>array('age'=>23,'name'=>'mary','date'=>'2012'),
'120'=>array('age'=>24,'name'=>'lilei','date'=>'2015')
);
array_multisort对数组按age倒序后date倒序,然后120被重新索引为0,怎么保持呢?目前是用$arr_another = $arr保留原数组
//感谢公子
uasort($arr, function($a, $b) {
if( $a['age'] === $b['age'] ){
return $a['date'] - $b['date'];
}
return $a['age'] - $b['age'];
});
print_r($arr);
新增加条件不是很懂,如果是要按照 age, date
的优先级进行排序的话直接这样写就好了:http://3v4l.org/MRYrt
如果是按照先进行一次 age 排序再进行一次 date 排序的话直接执行两次 uasort
不就好了么?代码见:http://3v4l.org/8FstY