二维数组排序

$arr = array_merge($ru['arr'],$chu['arr']);
$sort = array('direction' => 'SORT_DESC','field'=> 'ctimes' ); //direction排序顺序标志 SORT_DESC 降序;SORT_ASC 升序     //field排序字段  
$arrSort = array();
foreach($arr AS $uniqid => $row){
foreach($row AS $key=>$value){
$arrSort[$key][$uniqid] = $value;
}
}
if($sort['direction']){
array_multisort($arrSort[$sort['field']], constant($sort['direction']), $arr);
}
print_r($arr);
  1. <?php  
  2. /** 
  3.  * 二维数组根据某个字段排序 
  4.  * 功能:按照用户的年龄倒序排序 
  5.  * @author ruxing.li 
  6.  */  
  7. header('Content-Type:text/html;Charset=utf-8');  
  8. $arrUsers = array(  
  9.     array(  
  10.             'id'   => 1,  
  11.             'name' => '张三',  
  12.             'age'  => 25,  
  13.     ),  
  14.     array(  
  15.             'id'   => 2,  
  16.             'name' => '李四',  
  17.             'age'  => 23,  
  18.     ),  
  19.     array(  
  20.             'id'   => 3,  
  21.             'name' => '王五',  
  22.             'age'  => 40,  
  23.     ),  
  24.     array(  
  25.             'id'   => 4,  
  26.             'name' => '赵六',  
  27.             'age'  => 31,  
  28.     ),  
  29.     array(  
  30.             'id'   => 5,  
  31.             'name' => '黄七',  
  32.             'age'  => 20,  
  33.     ),  
  34. );   
  35.   
  36.   
  37. $sort = array(  
  38.         'direction' => 'SORT_DESC'//排序顺序标志 SORT_DESC 降序;SORT_ASC 升序  
  39.         'field'     => 'age',       //排序字段  
  40. );  
  41. $arrSort = array();  
  42. foreach($arrUsers AS $uniqid => $row){  
  43.     foreach($row AS $key=>$value){  
  44.         $arrSort[$key][$uniqid] = $value;  
  45.     }  
  46. }  
  47. if($sort['direction']){  
  48.     array_multisort($arrSort[$sort['field']], constant($sort['direction']), $arrUsers);  
  49. }  
  50.   
  51. var_dump($arrUsers);  
  52.   
  53. /* 
  54. 输出结果: 
  55.  
  56. array (size=5) 
  57.   0 =>  
  58.     array (size=3) 
  59.       'id' => int 5 
  60.       'name' => string '黄七' (length=6) 
  61.       'age' => int 20 
  62.   1 =>  
  63.     array (size=3) 
  64.       'id' => int 2 
  65.       'name' => string '李四' (length=6) 
  66.       'age' => int 23 
  67.   2 =>  
  68.     array (size=3) 
  69.       'id' => int 1 
  70.       'name' => string '张三' (length=6) 
  71.       'age' => int 25 
  72.   3 =>  
  73.     array (size=3) 
  74.       'id' => int 4 
  75.       'name' => string '赵六' (length=6) 
  76.       'age' => int 31 
  77.   4 =>  
  78.     array (size=3) 
  79.       'id' => int 3 
  80.       'name' => string '王五' (length=6) 
  81.       'age' => int 40 
  82.  
  83. */  
posted @ 2016-11-23 11:59  FinnYY  阅读(445)  评论(0编辑  收藏  举报