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

首頁(yè) > 語(yǔ)言 > PHP > 正文

php array_multisort() 多組數(shù)組排序方法

2024-09-04 11:46:06
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

在php中array_multisort()可實(shí)現(xiàn)一次對(duì)多個(gè)數(shù)組進(jìn)行排序,或者根據(jù)某一維或多維對(duì)多維數(shù)組進(jìn)行排序,如果成功則返回 TRUE,失敗則返回 FALSE.

bool array_multisort ( array ar1 [, mixed arg [, mixed ... [, array ...]]] )

如果成功則返回 TRUE,失敗則返回 FALSE.

array_multisort() 可以用來(lái)一次對(duì)多個(gè)數(shù)組進(jìn)行排序,或者根據(jù)某一維或多維對(duì)多維數(shù)組進(jìn)行排序.

關(guān)聯(lián)(string)鍵名保持不變,但數(shù)字鍵名會(huì)被重新索引.

例子 1. 對(duì)多維數(shù)組排序?qū)嵗a如下:

  1. <?php 
  2. $ar = array
  3.        array("10", 11, 100, 100, "a"), 
  4.        array(   1,  2, "2",   3,   1) 
  5.       ); 
  6. array_multisort($ar[0], SORT_ASC, SORT_STRING, 
  7.                 $ar[1], SORT_NUMERIC, SORT_DESC); 
  8. var_dump($ar); 
  9. ?> 

In this example, after sorting, the first array will transform to "10", 100, 100, 11, "a" (it was sorted as strings in ascending order). The second will contain 1, 3, "2", 2, 1 (sorted as numbers, in descending order).

實(shí)例代碼如下:

  1. array(2) { 
  2.   [0]=> array(5) { 
  3.     [0]=> string(2) "10" 
  4.     [1]=> int(100) 
  5.     [2]=> int(100) 
  6.     [3]=> int(11) 
  7.     [4]=> string(1) "a" 
  8.   } 
  9.   [1]=> array(5) { 
  10.     [0]=> int(1) 
  11.     [1]=> int(3) 
  12.     [2]=> string(1) "2" 
  13.     [3]=> int(2) 
  14.     [4]=> int(1) 
  15.   } 

本例中經(jīng)過(guò)排序后,第一個(gè)數(shù)組將包含 10,100,100,"a"(作為字符串上升排序),第二個(gè)數(shù)組將包含 1,3,"2",1(作為數(shù)值下降排序).

例子 2. Sorting multi-dimensional array實(shí)例代碼如下:

  1. <?php 
  2. $ar = array
  3.         array("10", 11, 100, 100, "a"), 
  4.         array(   1,  2, "2",   3,   1) 
  5.        ); 
  6. array_multisort($ar[0], SORT_ASC, SORT_STRING, 
  7.                 $ar[1], SORT_NUMERIC, SORT_DESC); 
  8. var_dump($ar); 
  9. ?>  

本例中在排序后,第一個(gè)數(shù)組將變成 "10",100,100,11,"a"(被當(dāng)作字符串以升序排列).第二個(gè)數(shù)組將包含 1, 3, "2", 2, 1(被當(dāng)作數(shù)字以降序排列).

實(shí)例代碼如下:

  1. array(2) { 
  2.   [0]=> array(5) { 
  3.     [0]=> string(2) "10" 
  4.     [1]=> int(100) 
  5.     [2]=> int(100) 
  6.     [3]=> int(11) 
  7.     [4]=> string(1) "a" 
  8.   } 
  9.   [1]=> array(5) { 
  10.     [0]=> int(1) 
  11.     [1]=> int(3) 
  12.     [2]=> string(1) "2" 
  13.     [3]=> int(2) 
  14.     [4]=> int(1) 
  15.   } 

實(shí)例3 綜合實(shí)現(xiàn)來(lái)看一個(gè)關(guān)于在應(yīng)用中常用的實(shí)例代碼如下:

  1. header('Content-Type: text/html; charset=utf-8');  
  2. echo '<pre>';  
  3. //原始數(shù)組格式  
  4. $array = array(  
  5. 'key1' => array(  
  6. 'item1' => '65',  
  7. 'item2' => '35',  
  8. 'item3' => '84',  
  9. ),  
  10. 'key2' => array(  
  11. 'item1' => '24',  
  12. ),  
  13. 'key3' => array(  
  14. 'item1' => '38',  
  15. 'item3' => '45',  
  16. ),  
  17. );  
  18. //要排序的鍵  
  19. //按照數(shù)組中的 item1進(jìn)行排序  
  20. //你也可以換成item2  
  21. $sort = 'item1';  
  22. foreach($array as $k => $v)  
  23. {  
  24. $newArr[$k] = $v[$sort];  
  25. }  
  26. //這個(gè)函數(shù)如果執(zhí)行正確他會(huì)直接改變?cè)瓟?shù)組鍵值的順序  
  27. //如果執(zhí)行失敗,那么他會(huì)返回 bool(false)  
  28. array_multisort($newArr,SORT_DESC, $array);  
  29. var_dump($array);  
  30. //---------------------排序后的數(shù)組打印效果 開(kāi)始--------------------  
  31. array(3) {  
  32. ["key1"]=>  
  33. array(3) {  
  34. ["item1"]=>  
  35. string(2) "65"  
  36. ["item2"]=>  
  37. string(2) "35"  
  38. ["item3"]=>  
  39. string(2) "84"  
  40. }  
  41. ["key3"]=>  
  42. array(2) {  
  43. ["item1"]=>  
  44. string(2) "38"  
  45. ["item3"]=>  
  46. string(2) "45"  
  47. }  
  48. ["key2"]=>  
  49. array(1) {  
  50. ["item1"]=>  
  51. string(2) "24"  
  52. }  
  53. }  
  54. //---------------------排序后的數(shù)組打印效果 結(jié)束--------------------- 

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 昭苏县| 麻城市| 临朐县| 黔南| 永福县| 镇宁| 望都县| 台湾省| 廉江市| 姜堰市| 治多县| 元朗区| 南汇区| 乡宁县| 连南| 喀喇沁旗| 桐城市| 南川市| 台前县| 广东省| 延津县| 桃江县| 双峰县| 尼玛县| 周宁县| 城固县| 太康县| 河池市| 玛纳斯县| 抚州市| 万载县| 天长市| 华池县| 班戈县| 望奎县| 恩施市| 桐梓县| 昂仁县| 林西县| 麻栗坡县| 五家渠市|