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