search

Home  >  Q&A  >  body text

PHP array_multisort() 函数怎么保持数字键不被重新索引

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);
怪我咯怪我咯2818 days ago753

reply all(1)I'll reply

  • PHPz

    PHPz2017-04-10 15:14:42

    新增加条件不是很懂,如果是要按照 age, date 的优先级进行排序的话直接这样写就好了:http://3v4l.org/MRYrt
    如果是按照先进行一次 age 排序再进行一次 date 排序的话直接执行两次 uasort 不就好了么?代码见:http://3v4l.org/8FstY

    reply
    0
  • Cancelreply