最新消息: 新版网站上线了!!!

php对二维数组某个键排序

  1. /** 
  2.  * 对查询结果集进行排序 
  3.  * @access public 
  4.  * @param array $list 查询结果 
  5.  * @param string $field 排序的字段名 
  6.  * @param string $sortby 排序类型 (asc正向排序 desc逆向排序 nat自然排序) 
  7.  * @return array 
  8.  */ 
  9.  
  10.     function list_sort_by($list$field$sortby = 'asc'
  11.     { 
  12.         if (is_array($list)) 
  13.         { 
  14.             $refer = $resultSet = array(); 
  15.             foreach ($list as $i => $data
  16.             { 
  17.                 $refer[$i] = &$data[$field]; 
  18.             } 
  19.             switch ($sortby
  20.             { 
  21.                 case 'asc'// 正向排序 
  22.                     asort($refer); 
  23.                     break
  24.                 case 'desc'// 逆向排序 
  25.                     arsort($refer); 
  26.                     break
  27.                 case 'nat'// 自然排序 
  28.                     natcasesort($refer); 
  29.                     break
  30.             } 
  31.             foreach ($refer as $key => $val
  32.             { 
  33.                 $resultSet[] = &$list[$key]; 
  34.             } 
  35.             return $resultSet
  36.         } 
  37.         return false; 
  38.     } 
  39.  
  40. /** 
  41.  * 例子 
  42.  * 求:根据二维数组的id键值降序排列(也就是id越大的排在越前)? 
  43.  */ 
  44. $list = array
  45.     0 => array
  46.         'id' => 1, 
  47.         'name' => '第一' 
  48.     ), 
  49.     1 => array
  50.         'id' => 3, 
  51.         'name' => '第三' 
  52.     ), 
  53.     2 => array
  54.         'id' => 2, 
  55.         'name' => '第二' 
  56.     ), 
  57.     3 => array
  58.         'id' => 4, 
  59.         'name' => '第四' 
  60.     ), 
  61. ); 
  62. //解答 
  63. $new_list = list_sort_by($list'id''desc'); 

 

转载请注明:谷谷点程序 » php对二维数组某个键排序