国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 西乡县| 赤壁市| 江孜县| 久治县| 吉安县| 南乐县| 隆德县| 万盛区| 东丰县| 四子王旗| 塘沽区| 金堂县| 油尖旺区| 广丰县| 新建县| 安义县| 肃南| 凉山| 迭部县| 石门县| 太仓市| 赤城县| 凯里市| 翁牛特旗| 库尔勒市| 三原县| 永春县| 都昌县| 桐梓县| 鹿泉市| 永新县| 高安市| 肇东市| 长海县| 阿城市| 中西区| 青浦区| 绥芬河市| 青阳县| 阳朔县| 原平市|