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