这几天一直忙于公司某个系统的开发,没来得及更新,真是罪过。

php对二维数组的排序其实很简单,但要是不知道array_multisort这个函数就比较费事了。

这个函数的用法举例如下:

 
  
  1. $data = array(); 
  2. $data[] = array('volume' => 67, 'edition' => 2); 
  3. $data[] = array('volume' => 86, 'edition' => 1); 
  4. $data[] = array('volume' => 85, 'edition' => 6); 
  5. $data[] = array('volume' => 98, 'edition' => 2); 
  6. $data[] = array('volume' => 86, 'edition' => 6); 
  7. $data[] = array('volume' => 67, 'edition' => 7); 
  8.  
  9. // 取得列的列表 
  10. foreach ($data as $key => $row
  11.     $volume[$key]  = $row['volume']; 
  12.     $edition[$key] = $row['edition']; 
  13.  
  14. array_multisort($volume, SORT_DESC, $edition, SORT_ASC, $data); 
  15.  
  16. print_r($data); 

输出:

 
  
  1. Array 
  2.     [0] => Array 
  3.         ( 
  4.             [volume] => 98 
  5.             [edition] => 2 
  6.         ) 
  7.  
  8.     [1] => Array 
  9.         ( 
  10.             [volume] => 86 
  11.             [edition] => 1 
  12.         ) 
  13.  
  14.     [2] => Array 
  15.         ( 
  16.             [volume] => 86 
  17.             [edition] => 6 
  18.         ) 
  19.  
  20.     [3] => Array 
  21.         ( 
  22.             [volume] => 85 
  23.             [edition] => 6 
  24.         ) 
  25.  
  26.     [4] => Array 
  27.         ( 
  28.             [volume] => 67 
  29.             [edition] => 2 
  30.         ) 
  31.  
  32.     [5] => Array 
  33.         ( 
  34.             [volume] => 67 
  35.             [edition] => 7 
  36.         ) 
  37.  

这个函数的参数非常灵活,大家可以对照手册仔细研究下。