深入理解PHP多維數(shù)組排序原理
隨著時(shí)代的發(fā)展,喜歡用PHP語(yǔ)言的人越來(lái)越多,我們這里就回顧一下PHP多維數(shù)組排序的功能,希望大家能得到收獲。如果成功則返回 TRUE,失敗則返回 FALSE。array_multisort() 可以用來(lái)一次對(duì)多個(gè)數(shù)組進(jìn)行排序,或者根據(jù)某一維或多維對(duì)PHP多維數(shù)組排序。
#T#關(guān)聯(lián)(string)鍵名保持不變,但數(shù)字鍵名會(huì)被重新索引。輸入數(shù)組被當(dāng)成一個(gè)表的列并以行來(lái)排序――這類似于 SQL 的 ORDER BY 子句的功能。第一個(gè)數(shù)組是要排序的主要數(shù)組。數(shù)組中的行(值)比較為相同的話就按照下一個(gè)輸入數(shù)組中相應(yīng)值的大小來(lái)排序,依此類推。本函數(shù)的參數(shù)結(jié)構(gòu)有些不同尋常,但是非常靈活。第一個(gè)參數(shù)必須是一個(gè)數(shù)組。接下來(lái)的每個(gè)參數(shù)可以是數(shù)組或者是下面列出的排序標(biāo)志。
排序順序標(biāo)志:
◆SORT_ASC - 按照上升順序排序
◆SORT_DESC - 按照下降順序排序
排序類型標(biāo)志:
◆SORT_REGULAR - 將項(xiàng)目按照通常方法比較
◆SORT_NUMERIC - 將項(xiàng)目按照數(shù)值比較
◆SORT_STRING - 將項(xiàng)目按照字符串比較
每個(gè)數(shù)組之后不能指定兩個(gè)同類的排序標(biāo)志。每個(gè)數(shù)組后指定的排序標(biāo)志僅對(duì)該數(shù)組有效 - 在此之前為默認(rèn)值 SORT_ASC 和 SORT_REGULAR。
例子 1. 對(duì)PHP多維數(shù)組排序
- <?php
- $ar1 = array("10", 100, 100, "a");
- $ar2 = array(1, 3, "2", 1);
- array_multisort($ar1, $ar2);
- var_dump($ar1);
- var_dump($ar2);
- ?>
本例中經(jīng)過(guò)排序后,第一個(gè)數(shù)組將包含 "10","a",100,100。第二個(gè)數(shù)組將包含 1,1,"2",3。第二個(gè)數(shù)組中的項(xiàng)目順序完全和第一個(gè)數(shù)組中相應(yīng)的項(xiàng)目(100 和 100)順序一致。
- array(4) {
- [0]=> string(2) "10"
- [1]=> string(1) "a"
- [2]=> int(100)
- [3]=> int(100)
- }
- array(4) {
- [0]=> int(1)
- [1]=> int(1)
- [2]=> string(1) "2"
- [3]=> int(3)
- }