php实例分享之二维数组排序

PHP一维数组的排序可以用sort(),asort(),arsort()等函数,PHP二维数组的排序需要自定义。

PHP一维数组的排序可以用sort(),asort(),arsort()等函数;

PHP二维数组的排序需要自定义。

以下函数是对一个给定的二维数组按照指定的键值进行排序,先看函数定义:

  1. function array_sort($arr,$keys,$type='asc'){
  2. $keysvalue = $new_array = array();
  3. foreach ($arr as $k=>$v){
  4. $keysvalue[$k] = $v[$keys];
  5. }
  6. if($type == 'asc'){
  7. asort($keysvalue);
  8. }else{
  9. arsort($keysvalue);
  10. }
  11. reset($keysvalue);
  12. $index = 0;//保存下标不变用$k,下标从0开始就用$index;
  13. foreach ($keysvalue as $k=>$v){
  14. $new_array[$index] = $arr[$k];
  15. $index++;
  16. }
  17. return $new_array;
  18. }

它可以对二维数组按照指定的键值进行排序,也可以指定升序或降序排序法(默认为升序),用法示例:

  1. $array = array(
  2. array('name'=>'Js','date'=>'2014-05-01'),
  3. array('name'=>'Sh','date'=>'2014-04-30'),
  4. array('name'=>'Bj','date'=>'2014-05-02')
  5. );
  6. $arrayList = array_sort($array,'date');
  7. print_r($arrayList);