亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > PHP > 正文

php專用數組排序類ArraySortUtil用法實例

2024-05-04 23:33:52
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了php專用數組排序類ArraySortUtil用法,實例分析了ArraySortUtil實現數組排序的方法與對應使用技巧,需要的朋友可以參考下

本文實例講述了php專用數組排序類ArraySortUtil用法。分享給大家供大家參考。具體如下:

 

 
  1. ** 
  2. * ArraySortUtil is a array sort utility, you can extends the sorting engine. 
  3. * @version 0.1 
  4. * @package utility.sort 
  5. */ 
  6. class ArraySortUtil 
  7. static function uasort($unsort$fields
  8. if ( !is_array($unsort) || sizeof($unsort) <= 0 ) return $unsort
  9. $sorted = uasortEngine::uasort($unsort$fields); 
  10. return $sorted
  11. static function multisort($unsort$fields
  12. if ( !is_array($unsort) || sizeof($unsort) <= 0 ) return $unsort
  13. $sorted = multisortEngine::multisort($unsort$fields); 
  14. return $sorted
  15. class multisortEngine 
  16. static function multisort($unsort$fields
  17. $sorted = $unsort
  18. if (is_array($unsort)) 
  19. $loadFields = array(); 
  20. foreach($fields as $sortfield
  21. $loadFields["field"][] = array
  22. "name" => $sortfield["field"], 
  23. "order" => $sortfield["order"], 
  24. "nature" => $sortfield["nature"], 
  25. "caseSensitve" => $sortfield["caseSensitve"
  26. ); 
  27. $loadFields["data"][$field["field"]] = array(); 
  28. // Obtain a list of columns 
  29. foreach ($sorted as $key => $row) { 
  30. foreach($loadFields["field"as $field) { 
  31. $value = $row[$field["name"]]; 
  32. $loadFields["data"][$field["name"]][$key] = $value
  33. $parameters = array(); 
  34. foreach($loadFields["field"as $sortfield) { 
  35. $array_data = $loadFields["data"][$sortfield["name"]]; 
  36. $caseSensitve = ( $sortfield["caseSensitve"] == null ) ? $sortfield["caseSensitve"] : false; 
  37. if (!$caseSensitve$array_data = array_map('strtolower'$array_data); 
  38. $parameters[] = $array_data
  39. if ( $sortfield["order"] != null ) $parameters[] = ( $sortfield["order"] ) ? SORT_DESC : SORT_ASC; 
  40. if ( $sortfield["nature"] != null ) $parameters[] = ( $sortfield["nature"] ) ? SORT_REGULAR : SORT_STRING; 
  41. $parameters[] = &$sorted
  42. call_user_func_array("array_multisort"$parameters); 
  43. return $sorted
  44. class uasortEngine 
  45. static private $caseSensitve = false; 
  46. static private $sortfields = array(); 
  47. static private $sortorder = true; 
  48. static private $nature = false; 
  49. static private function uasort_callback(&$a, &$b
  50. foreach(self::$sortfields as $sortfield
  51. $_field = $sortfield["field"]; 
  52. $_order = isset($sortfield["order"]) ? $sortfield["order"] : self::$sortorder
  53. $_caseSensitve = isset($sortfield["caseSensitve"]) ? $sortfield["caseSensitve"] : self::$caseSensitve
  54. $_nature = isset($sortfield["nature"]) ? $sortfield["nature"] : self::$nature
  55. if ($_field != ""
  56. $retval = 0; 
  57. if ($_nature
  58. if ($_caseSensitve
  59. $compare = strnatcmp($a[$_field], $b[$_field]); 
  60. else 
  61. $compare = strnatcasecmp($a[$_field], $b[$_field]); 
  62. else 
  63. if ($_caseSensitve
  64. $compare = strcmp($a[$_field], $b[$_field]); 
  65. else 
  66. $compare = strcasecmp($a[$_field], $b[$_field]); 
  67. if ($compare !== 0 && !$_order$compare = ($compare > 0) ? -1 : 1; 
  68. if ($compare !== 0) break
  69. return $compare
  70. static function uasort($unsort$fields
  71. self::$sortfields = $fields
  72. $sorted = $unsort
  73. uasort($sortedarray('uasortEngine''uasort_callback')); 
  74. return $sorted

使用范例如下:

 

 
  1. <?php 
  2. require_once('class.ArraySortUtil.php'); 
  3. // declare test data 
  4. $assetData[] = array("id" => 1, "category"=>"Hardware""subcategory"=>"Personal Computer""supplier" => "DELL""particular"=>"Vostro 1320""purchase_price"=>2300, "other_charges"=>500); 
  5. $assetData[] = array("id" => 2, "category"=>"Hardware""subcategory"=>"Personal Computer""supplier" => "DELL""particular"=>"Vostro 1420""purchase_price"=>2500, "other_charges"=>0); 
  6. $assetData[] = array("id" => 3, "category"=>"Hardware""subcategory"=>"Laptop""supplier" => "DELL""particular"=>"Vostro 1520""purchase_price"=>4500, "other_charges"=>100); 
  7. $assetData[] = array("id" => 4, "category"=>"Hardware""subcategory"=>"Laptop""supplier" => "Acer""particular"=>"Apire One""purchase_price"=>2500, "other_charges"=>200); 
  8. $assetData[] = array("id" => 5, "category"=>"Furniture""subcategory"=>"Table""supplier" => "CHEN""particular"=>"Manager Table""purchase_price"=>1000, "other_charges"=>0); 
  9. $assetData[] = array("id" => 6, "category"=>"Furniture""subcategory"=>"Table""supplier" => "CHEN""particular"=>"Staff Table""purchase_price"=>500, "other_charges"=>0); 
  10. $assetData[] = array("id" => 7, "category"=>"Furniture""subcategory"=>"Chair""supplier" => "CHEN""particular"=>"Staff Chair""purchase_price"=>500, "other_charges"=>0); 
  11. $sorted = ArraySortUtil::multisort($assetDataarray
  12. array("field"=>"category"), 
  13. array("field"=>"subcategory""order" => true) // desc 
  14. )); 
  15. echo "<h1>multisort:result</h1>"
  16. echo "<pre>"
  17. print_r($sorted); 
  18. echo "</pre>"
  19. $sorted = ArraySortUtil::uasort($assetDataarray
  20. array("field"=>"category"), 
  21. array("field"=>"subcategory""order" => true) // desc 
  22. )); 
  23. echo "<h1>uasort:result</h1>"
  24. echo "<pre>"
  25. print_r($sorted); 
  26. echo "</pre>"

希望本文所述對大家的php程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91tv亚洲精品香蕉国产一区7ujn| 欧美人与性动交a欧美精品| 色噜噜狠狠色综合网图区| 日本久久久久久久久| 亚洲欧美一区二区精品久久久| 国产va免费精品高清在线观看| 国产日韩综合一区二区性色av| 久久久免费电影| 国产va免费精品高清在线观看| 欧美另类69精品久久久久9999| 国产视频精品自拍| 欧美黑人狂野猛交老妇| 国产va免费精品高清在线| xxxxx91麻豆| 亚洲一区二区三区乱码aⅴ蜜桃女| 亚洲精品国产品国语在线| 日韩在线视频播放| 午夜精品三级视频福利| 伊人男人综合视频网| 成人av色在线观看| 久久久www成人免费精品张筱雨| 欧美日韩免费网站| 97精品视频在线播放| 国产一区二区三区在线观看网站| 美女精品视频一区| 97超级碰碰人国产在线观看| 欧美极品少妇全裸体| 91精品在线观| 亚洲男人av电影| 91精品视频免费观看| 久久免费视频在线观看| 国产中文日韩欧美| 久久国产精品99国产精| 北条麻妃在线一区二区| 午夜精品一区二区三区视频免费看| 日韩av黄色在线观看| 日韩视频中文字幕| 欧洲成人在线视频| 国产热re99久久6国产精品| 国产精品久久久久久久久久久久| 久久艳片www.17c.com| 久久久久日韩精品久久久男男| 热久久美女精品天天吊色| 亚洲毛片在线观看.| 欧美在线日韩在线| 国产精品日本精品| 久久久久久国产| 中文字幕日韩精品在线观看| 国产亚洲视频中文字幕视频| 日韩中文字幕在线免费观看| 国产精品日韩在线播放| 狠狠色狠狠色综合日日小说| 国产精品欧美在线| 国产大片精品免费永久看nba| 亚洲图片制服诱惑| 97精品国产91久久久久久| 国产精品专区h在线观看| 97精品国产91久久久久久| 97精品欧美一区二区三区| 国产精品91视频| 欧美电影免费观看高清| 欧美视频免费在线| 91国内揄拍国内精品对白| 欧美成人免费全部观看天天性色| 亚洲综合第一页| 久久91精品国产91久久久| 国产精品久久一区| 中文字幕免费国产精品| 一个人看的www欧美| 欧美猛男性生活免费| 日韩欧美精品网站| 久久亚洲一区二区三区四区五区高| 国产精品福利在线观看网址| 欧美大尺度激情区在线播放| 日韩av网址在线观看| 中文字幕av一区二区三区谷原希美| 免费av在线一区| 欧美精品电影免费在线观看| 亚洲精品按摩视频| 日韩美女激情视频| 中文字幕日韩有码| 欧美极品美女电影一区| 日本不卡高字幕在线2019| 国产日产欧美a一级在线| 国产成人精品一区| 亚洲美女动态图120秒| 亚洲91精品在线| 精品视频久久久久久| 国产婷婷成人久久av免费高清| 26uuu另类亚洲欧美日本老年| 国产成人av网| 亚洲精品国产精品自产a区红杏吧| 亚洲电影免费观看高清完整版在线| 欧美黑人狂野猛交老妇| 国内精品小视频在线观看| 日本精品视频在线观看| 欧美乱大交做爰xxxⅹ性3| 色视频www在线播放国产成人| 欧美成人精品三级在线观看| 欧美激情啊啊啊| 九九热精品视频| 韩国精品美女www爽爽爽视频| 92看片淫黄大片欧美看国产片| 久久久久久尹人网香蕉| 亚洲黄一区二区| 精品国内自产拍在线观看| 国产精品一区二区三区久久| 欧美一区二区影院| 亚洲精品国偷自产在线99热| 国产亚洲精品久久久久久牛牛| www.99久久热国产日韩欧美.com| 国产精品自产拍高潮在线观看| 日韩中文字幕视频| 精品久久久久久久中文字幕| 久久精品视频播放| 亚洲自拍在线观看| 亚洲偷欧美偷国内偷| 成人在线观看视频网站| 久久久av电影| 午夜精品久久久99热福利| 久久亚洲国产精品| 日韩国产精品亚洲а∨天堂免| 久久久久久久久久久网站| 久久99久久久久久久噜噜| 久久久日本电影| 亚洲福利视频免费观看| 亚洲欧美中文在线视频| 国产精品揄拍500视频| 欧美多人爱爱视频网站| 亚洲精品黄网在线观看| 国产区精品视频| 欧美日韩国产中文精品字幕自在自线| 欧美日韩国产成人在线观看| 色综合色综合久久综合频道88| 成人av.网址在线网站| 91精品国产电影| 亚洲午夜未满十八勿入免费观看全集| 久久久久九九九九| 久久国产精品久久久久久久久久| 日韩久久免费电影| www.久久久久久.com| 福利精品视频在线| 国产999在线| 97香蕉超级碰碰久久免费的优势| 亚洲乱码国产乱码精品精天堂| 国产精品影片在线观看| 国产在线观看一区二区三区| 国产最新精品视频| 欧美极品第一页| 国产一区二区三区在线播放免费观看| 国产成人精品电影久久久| 亚洲最大成人免费视频| 欧美成人免费va影院高清| 亚洲一级黄色片| 日韩免费av在线| 国产97在线|日韩| 自拍偷拍亚洲在线| 最近2019好看的中文字幕免费| 91中文字幕在线观看| 亚洲欧美成人精品| 久久久久久久91| 日韩精品免费一线在线观看| 亚洲一区二区三区在线视频| 中文字幕日韩欧美在线视频|