PHP中有关多维数组排序

    有关多维数组排序的问题,工作中经常遇到,但是不同的人,处理的方法不一样,比如下面的数组

    $data = array(

        array("name"=>"kivmi","age"=>27),

        array("name"=>"sathen","age"=>24),

        array("name"=>"nancy","age"=>26),

        array("name")=>"du","age"=>23)

  )

  如果需要对$data按照age升级排序,该怎么处理呢?

  有些人,可能会先遍历数组,然后把age作为key,然后ksort来排序,或者直接取出age作为数组,并将索引作为key,然后对age使用asort排序,

  但是其实php提供了一个内置函数,来解决多维数组排序的问题,这就说明其对php手册不是很熟,php手册中有一个函数,array_mutilsort,其函数原型如下

  bool array_mutilsort(array &array1 [,mixed $array1_sort_order=SORT_DESC [,mixed $array1_sort_flags=SORT_REGULAR [,mixed...]]])

  这样就可以利用这个函数进行排序了,只需要将需要排序的字段值保存在一个数组中,并且能对多个字段进行排序,

  foreach($data as $key => $item){

    $ages[$key] = $item['age'];

  }

    array_mutilsort($ages,SORT_DESC,$data);

    这样就排好序了,简单吧,这个问题甚至已经做了5年php的程序员都不知道有这么一个函数,所以,大家还得好好看手册。

   

 

 

 

posted on 2014-09-15 02:09  kivmi  阅读(197)  评论(0编辑  收藏  举报

导航