国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

php 多維數組的排序實現代碼

2024-09-04 11:46:17
字體:
來源:轉載
供稿:網友

本文章給大家整一個php 多維數組的排序實現代碼,我們在實際編碼中將會用到PHP函數array_multisort()來實現這一復雜的排序,有需要了解的朋友可參考.

如數組,代碼如下:

  1. Array 
  2.    [0] => Array 
  3.        ( 
  4.            [id] => 1146 
  5.            [orderid] => 3 
  6.        ) 
  7.    [1] => Array 
  8.        ( 
  9.            [id] => 1149 
  10.            [orderid] => 2 
  11.        ) 
  12.    [2] => Array 
  13.        ( 
  14.            [id] => 170 
  15.            [orderid] => 4 
  16.        ) 
  17.    [3] => Array 
  18.        ( 
  19.            [id] => 1121 
  20.            [orderid] => 3 
  21.        ) 
  22.    [4] => Array 
  23.        ( 
  24.            [id] => 1120 
  25.            [orderid] => 7 
  26.        ) 

這么一個數據,想按orderid來排序,找不到內置的php函數,網上搜索了下,發現如下方法,代碼如下:

  1. $asc_func  =  create_function('$a,$b','   
  2. $k  =  "orderid"
  3. if($a[$k]  ==  $b[$k])  return  0;   
  4. return  $a[$k]>$b[$k]?1:-1;   
  5. ');   
  6. usort($arrs,$asc_func);  

$arrs是原數組,$k="orderid"是要排序的字段,后來對上面代碼進行了升級,代碼如下:

  1. function sysSortArray($ArrayData,$KeyName1,$SortOrder1 = "SORT_ASC",$SortType1 = "SORT_REGULAR"
  2.     if(!is_array($ArrayData)) 
  3.     { 
  4.         return $ArrayData
  5.     } 
  6.     // Get args number. 
  7.     $ArgCount = func_num_args(); 
  8.     // Get keys to sort by and put them to SortRule array. 
  9.     for($I = 1;$I < $ArgCount;$I ++) 
  10.     { 
  11.         $Arg = func_get_arg($I); 
  12.         if(!eregi("SORT",$Arg)) 
  13.         { 
  14.             $KeyNameList[] = $Arg
  15.             $SortRule[]    = '$'.$Arg
  16.         } 
  17.         else 
  18.         { 
  19.             $SortRule[]    = $Arg
  20.         } 
  21.     } 
  22.     // Get the values according to the keys and put them to array. 
  23.     foreach($ArrayData AS $Key => $Info
  24.     { 
  25.         foreach($KeyNameList AS $KeyName
  26.         { 
  27.             ${$KeyName}[$Key] = $Info[$KeyName]; 
  28.         } 
  29.     } 
  30.     // Create the eval string and eval it. 
  31.     $EvalString = 'array_multisort('.join(",",$SortRule).',$ArrayData);'
  32.     eval ($EvalString); 
  33.     return $ArrayData

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 苗栗县| 民勤县| 共和县| 阿荣旗| 铁岭市| 闻喜县| 洪雅县| 石狮市| 高密市| 遂溪县| 视频| 阿合奇县| 青州市| 田阳县| 康平县| 仪征市| 五寨县| 焦作市| 教育| 策勒县| 天全县| 威信县| 视频| 遂川县| 惠安县| 武平县| 阿城市| 宾阳县| 洛隆县| 阿克陶县| 屯门区| 金平| 德清县| 高安市| 五原县| 兰考县| 茂名市| 眉山市| 垣曲县| 钦州市| 子长县|