3種升序方法:1、用“sort(數(shù)組,排序模式)”語句,可對數(shù)組元素進(jìn)行升序排序;2、用“asort(數(shù)組,排序模式)”語句,可根據(jù)鍵值對數(shù)組元素進(jìn)行升序排序;3、用“ksort(數(shù)組,排序模式)”語句,可根據(jù)鍵名對數(shù)組元素進(jìn)行升序排序。
本教程操作環(huán)境:windows7系統(tǒng)、PHP7.1版、DELL G3電腦
PHP中有三個(gè)常用的數(shù)組升序排序函數(shù):
-
sort():對數(shù)組元素進(jìn)行升序排序
-
asort():根據(jù)關(guān)聯(lián)數(shù)組的鍵值,對數(shù)組進(jìn)行升序排列
-
ksort(): 根據(jù)關(guān)聯(lián)數(shù)組的鍵名,對數(shù)組進(jìn)行升序排序
1、使用sort()函數(shù)
sort()函數(shù)對數(shù)組元素進(jìn)行升序排序(從小到大,由低到高)。
sort() 函數(shù)有兩個(gè)參數(shù):$array(必須)和$sortingtype(可省略)。
其中,$sortingtype參數(shù)用來定義函數(shù)排序的模式,指定如何比較數(shù)組的元素/項(xiàng)目,默認(rèn)值為“SORT_REGULAR”。
$sortingtype參數(shù)可以設(shè)置為下面這些值:
0 = SORT_REGULAR:正常比較數(shù)組元素,不改變其類型(默認(rèn)值);
1 = SORT_NUMERIC:將數(shù)組元素當(dāng)作數(shù)字來處理;
2 = SORT_STRING:將數(shù)組元素當(dāng)作字符串來處理;
3 = SORT_LOCALE_STRING:基于當(dāng)前的區(qū)域設(shè)置(可通過 setlocale()進(jìn)行更改),把數(shù)組元素當(dāng)作字符串比較。
4 = SORT_NATURAL:和 natsort() 類似對每個(gè)數(shù)組元素以“自然的順序”對字符串進(jìn)行排序,是 PHP5.4.0 中新增的。
5 = SORT_FLAG_CASE:能夠與 SORT_STRING 或 SORT_NATURAL 合并(OR 位運(yùn)算),不區(qū)分大小寫排序字符串。
示例1:不設(shè)置第二參數(shù)
<?php header("Content-type:text/html;charset=utf-8"); $arr1=array(10, 23, 5, 12, 84, 16); sort($arr1); var_dump($arr1); $arr2=array("香蕉","蘋果","梨子","橙子","橘子","榴蓮"); sort($arr2); var_dump($arr2); ?>
示例2:設(shè)置第二參數(shù)
<?php header("Content-type:text/html;charset=utf-8"); $arr1 = array(10, 23, 5, 12, 84, 16); sort($arr1,2); var_dump($arr1); $arr2= array("香蕉","蘋果","梨子","橙子","橘子","榴蓮"); sort($arr2,1); var_dump($arr2); ?>
sort()函數(shù)不會保持索引關(guān)系,會刪除數(shù)組中原有的鍵名并為其賦與新的數(shù)值鍵名。
2、使用asort()函數(shù)
asort()函數(shù)會根據(jù)關(guān)聯(lián)數(shù)組的鍵值進(jìn)行升序排序,且不會修改原數(shù)組中的鍵名。
<?php header("Content-type:text/html;charset=utf-8"); $age = array("張三"=>30,"李四"=>23,"王五"=>15,"李華"=>12,"娜娜"=>26,"小紅"=>16); asort($age); var_dump($age); ?>
輸出:
asort()函數(shù)也有兩個(gè)參數(shù),參數(shù)取值和sort()函數(shù)相同,可以參考。
3、使用ksort()函數(shù)
ksort()函數(shù)會根據(jù)關(guān)聯(lián)數(shù)組的鍵名進(jìn)行升序排序,也不會修改原數(shù)組中的鍵名。
<?php header("Content-type:text/html;charset=utf-8"); $arr= array("l"=>"lemon", "o"=>"orange", "b"=>"banana", "a"=>"apple"); ksort($arr); var_dump($arr); ?>
ksort()函數(shù)也有兩個(gè)參數(shù),參數(shù)取值和sort()函數(shù)相同,可以參考。
推薦學(xué)習(xí):《PHP視頻教程》