国产探花免费观看_亚洲丰满少妇自慰呻吟_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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 尚志市| 延寿县| 西昌市| 兴国县| 吴忠市| 扬州市| 通江县| 陆丰市| 双城市| 普兰县| 怀仁县| 长寿区| 丁青县| 调兵山市| 雅江县| 乌鲁木齐县| 富宁县| 徐州市| 林州市| 海盐县| 金湖县| 贡嘎县| 佛冈县| 隆化县| 万州区| 文成县| 邵东县| 永新县| 攀枝花市| 安徽省| 清流县| 望城县| 洛扎县| 井陉县| 铁力市| 巩留县| 尉氏县| 石景山区| 大同县| 哈密市| 霍邱县|