当前位置:首页 > PHP教程 > php数组 > 列表

PHP二维数组怎么按某个字段排序?

发布:smiling 来源: PHP粉丝网  添加日期:2014-07-01 14:41:35 浏览: 评论:0 

先不说别的我们直接看二维数组按某个字段排序实例,代码如下:

  1. /**    
  2.  * @author yebihai 
  3.  * @desc 按二维数组的某一个字段进行升降排序    
  4.  * @data    
  5.  *      $testData = array(    
  6.             array('price'=>19),    
  7.             array('price'=>121),    
  8.             array('price'=>115),    
  9.             array('price'=>113),    
  10.             array('price'=>112)    
  11.         );    
  12.  */      
  13. class sortClass{      
  14.     //升序      
  15.     function sortArrayAsc($preData,$sortType='price'){      
  16.         $sortData = array();      
  17.         foreach ($preData as $key_i => $value_i){      
  18.             $price_i = $value_i[$sortType];      
  19.             $min_key = '';      
  20.             $sort_total = count($sortData);      
  21.             foreach ($sortData as $key_j => $value_j){      
  22.                 if($price_i<$value_j[$sortType]){      
  23.                     $min_key = $key_j+1;      
  24.                     break;      
  25.                 }      
  26.             }      
  27.             if(empty($min_key)){    
  28.                 array_push($sortData, $value_i);       
  29.             }else {      
  30.                 $sortData1 = array_slice($sortData, 0,$min_key-1);       
  31.                 array_push($sortData1, $value_i);      
  32.                 if(($min_key-1)<$sort_total){      
  33.                     $sortData2 = array_slice($sortData, $min_key-1);       
  34.                     foreach ($sortData2 as $value){      
  35.                         array_push($sortData1, $value);      
  36.                     }      
  37.                 }      
  38.                 $sortData = $sortData1;      
  39.         }      
  40.         }      
  41.         return $sortData;      
  42.     }      
  43.     //降序      
  44.     function sortArrayDesc($preData,$sortType='price'){      
  45.         $sortData = array();      
  46.         foreach ($preData as $key_i => $value_i){      
  47.             $price_i = $value_i[$sortType];      
  48.             $min_key = '';      
  49.             $sort_total = count($sortData);      
  50.             foreach ($sortData as $key_j => $value_j){      
  51.                 if($price_i>$value_j[$sortType]){      
  52.                     $min_key = $key_j+1;      
  53.                     break;      
  54.                 }      
  55.             }      
  56.             if(empty($min_key)){      
  57.                 array_push($sortData, $value_i);       
  58.             }else {      
  59.                 $sortData1 = array_slice($sortData, 0,$min_key-1);       
  60.                 array_push($sortData1, $value_i);      
  61.                 if(($min_key-1)<$sort_total){      
  62.                     $sortData2 = array_slice($sortData, $min_key-1);       
  63.                     foreach ($sortData2 as $value){      
  64.                         array_push($sortData1, $value);      
  65.                     }      
  66.                 }      
  67.                 $sortData = $sortData1;      
  68.             }      
  69.         }      
  70.         return $sortData;      
  71.     }      
  72. }  

后面整理一些关于数组排序的函数,数据排序函数有:

•sort() 函数用于对数组单元从低到高进行排序。

•rsort() 函数用于对数组单元从高到低进行排序。

•asort() 函数用于对数组单元从低到高进行排序并保持索引关系。

•arsort() 函数用于对数组单元从高到低进行排序并保持索引关系。

•ksort() 函数用于对数组单元按照键名从低到高进行排序。

•krsort() 函数用于对数组单元按照键名从高到低进行排序。

•array_multisort() 函数对多个数组或多维数组进行排序

Tags: PHP二维数组 某个字段排序

分享到: