新聞中心

成都創(chuàng)新互聯(lián)是一家專注于網(wǎng)站建設(shè)、成都網(wǎng)站建設(shè)與策劃設(shè)計(jì),東風(fēng)網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十余年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:東風(fēng)等地區(qū)。東風(fēng)做網(wǎng)站價(jià)格咨詢:13518219792
我們除了可以自定義一些數(shù)組排序的函數(shù)外,PHP 還內(nèi)置了多種對(duì)數(shù)組進(jìn)行排序的函數(shù),這些函數(shù)允許用戶在數(shù)組內(nèi)部對(duì)元素進(jìn)行排列。通過(guò)排序可以對(duì)數(shù)據(jù)進(jìn)行合理的管理,提高程序的執(zhí)行效率。下面我們就來(lái)介紹一下 PHP 中的數(shù)組排序函數(shù)。
PHP 中常用的數(shù)組排序函數(shù)如下表所示:
| 函數(shù) | 說(shuō)明 |
|---|---|
| sort() | 對(duì)數(shù)組元素進(jìn)行升序排序(從小到大)。 |
| rsort() | 對(duì)數(shù)組元素進(jìn)行降序排序(從大到?。?/td> |
| asort() | 對(duì)數(shù)組元素進(jìn)行升序排序(從小到大),并保持索引關(guān)系。 |
| arsort() | 對(duì)數(shù)組元素進(jìn)行降序排序(從大到?。?,并保持索引關(guān)系。 |
| ksort() | 按照數(shù)組的鍵值對(duì)數(shù)組進(jìn)行升序排序(從小到大),并保持索引關(guān)系。 |
| krsort() | 按照數(shù)組的鍵值對(duì)數(shù)組進(jìn)行降序排序(從大到?。⒈3炙饕P(guān)系。 |
1、sort() 函數(shù)
sort() 函數(shù)可以將數(shù)組進(jìn)行升序排序(從小到大,由低到高),語(yǔ)法格式如下:
sort($array [, $sort_flags = SORT_REGULAR])
參數(shù)說(shuō)明如下:
- $array:為要排序的數(shù)組。
- $sort_flags:為可選參數(shù),默認(rèn)為“SORT_REGULAR”,用來(lái)定義函數(shù)排序的模式。$sort_flags 可以設(shè)置為下面這些值:
- 0 或 SORT_REGULAR:正常比較數(shù)組元素,不改變其類型(默認(rèn)值);
- 1 或 SORT_NUMERIC:將數(shù)組元素當(dāng)作數(shù)字來(lái)比較;
- 2 或 SORT_STRING:將數(shù)組元素當(dāng)作字符串來(lái)比較
- 3 或 SORT_LOCALE_STRING:根據(jù)當(dāng)前的區(qū)域(locale)設(shè)置來(lái)把數(shù)組元素當(dāng)作字符串比較,可以用 setlocale() 來(lái)改變。
- 4 或 SORT_NATURAL:和 natsort() 類似對(duì)每個(gè)數(shù)組元素以“自然的順序”對(duì)字符串進(jìn)行排序,是 PHP5.4.0 中新增的。
- 5 或 SORT_FLAG_CASE:能夠與 SORT_STRING 或 SORT_NATURAL 合并(OR 位運(yùn)算),不區(qū)分大小寫(xiě)排序字符串。
提示:sort() 函數(shù)會(huì)刪除 $array 中原有的鍵名并為其賦與新的鍵名,而不是僅僅將數(shù)組元素重新排序。函數(shù)執(zhí)行成功時(shí)會(huì)返回 TRUE,失敗時(shí)會(huì)返回 FALSE。
【示例】使用 sort() 函數(shù)對(duì)數(shù)組進(jìn)行排序。
';
sort($num);
print_r($num);
$language = array(
'a' =>'http://c.biancheng.net/php/',
'b' =>'PHP',
'c' =>'Java',
'd' =>'Golang',
'e' =>'Python'
);
sort($language, SORT_FLAG_CASE);
print_r($language);
?>
運(yùn)行結(jié)果如下:
Array
(
[0] => 5
[1] => 10
[2] => 12
[3] => 16
[4] => 23
[5] => 84
)
Array
(
[0] => Golang
[1] => Java
[2] => PHP
[3] => Python
[4] => http://c.biancheng.net/php/
)
需要注意的是,在對(duì)混合類型的數(shù)組進(jìn)行排序時(shí)需要特別小心,sort() 函數(shù)很可能會(huì)返回一個(gè)不可預(yù)知的結(jié)果。
2、rsort() 函數(shù)
rsort() 函數(shù)同樣可以對(duì)數(shù)組進(jìn)行升序排序(從小到大,由低到高),但它不會(huì)修改原數(shù)組中的鍵名??梢詫?rsort() 函數(shù)看作是 sort() 函數(shù)的增強(qiáng)版。
rsort() 函數(shù)主要用于那些特別重視值和索引之間關(guān)系的數(shù)組,其語(yǔ)法格式如下:
asort($array [, $sort_flags = SORT_REGULAR])
參數(shù)說(shuō)明如下:
- $array:為要排序的數(shù)組。
- $sort_flags:為可選參數(shù),用來(lái)定義函數(shù)排序的模式,默認(rèn)值為“SORT_REGULAR”。$sort_flags 的取值與 sort() 函數(shù)中的 $sort_flags 參數(shù)相同。
【示例】使用 asort() 函數(shù)對(duì)數(shù)組進(jìn)行排序。
'http://c.biancheng.net/php/',
'b' =>'PHP',
'c' =>'Java',
'd' =>'Golang',
'e' =>'Python'
);
echo '';
asort($language, SORT_FLAG_CASE);
print_r($language);
?>
運(yùn)行結(jié)果如下:
Array
(
[d] => Golang
[c] => Java
[b] => PHP
[e] => Python
[a] => http://c.biancheng.net/php/
)
3、rsort() 函數(shù)
rsort() 函數(shù)函數(shù)可以對(duì)數(shù)組進(jìn)行降序排序(從大到小,由高到低),與 sort() 函數(shù)類似 rsort() 函數(shù)也會(huì)刪除數(shù)組原有的鍵名,并為其重新賦值。其語(yǔ)法格式如下:
rsort($array [, $sort_flags = SORT_REGULAR])
參數(shù)說(shuō)明如下:
- $array:為要排序的數(shù)組。
- $sort_flags:為可選參數(shù),用來(lái)定義函數(shù)排序的模式,默認(rèn)值為“SORT_REGULAR”。$sort_flags 的取值與 sort() 函數(shù)中的 $sort_flags 參數(shù)相同。
【示例】使用 rsort() 函數(shù)對(duì)數(shù)組進(jìn)行排序。
'Linux',
'b' =>'PHP',
'c' =>'Java',
'd' =>'Golang',
'e' =>'Python'
);
echo '';
rsort($language, 0);
print_r($language);
?>
運(yùn)行結(jié)果如下:
Array
(
[0] => Python
[1] => PHP
[2] => Linux
[3] => Java
[4] => Golang
)
4、arsort() 函數(shù)
arsort() 函數(shù)可以對(duì)數(shù)組進(jìn)行降序排序(從大到小,由高到低),但它不會(huì)修改原數(shù)組中的鍵名。與 rsort() 函數(shù)類似 arsort() 函數(shù)同樣適用于那些特別重視值和索引之間關(guān)系的數(shù)組,其語(yǔ)法格式如下:
arsort($array [, $sort_flags = SORT_REGULAR])
參數(shù)說(shuō)明如下:
- $array:為要排序的數(shù)組。
- $sort_flags:為可選參數(shù),用來(lái)定義函數(shù)排序的模式,默認(rèn)值為“SORT_REGULAR”。$sort_flags 的取值與 sort() 函數(shù)中的 $sort_flags 參數(shù)相同。
【示例】使用 arsort() 函數(shù)對(duì)數(shù)組進(jìn)行排序。
'Linux',
'b' =>'PHP',
'c' =>'Java',
'd' =>'Golang',
'e' =>'Python'
);
echo '';
arsort($language, 0);
print_r($language);
?>
運(yùn)行結(jié)果如下:
Array
(
[e] => Python
[b] => PHP
[a] => Linux
[c] => Java
[d] => Golang
)
5、ksort() 函數(shù)
ksort() 函數(shù)可以根據(jù)數(shù)組的鍵值對(duì)數(shù)組進(jìn)行升序排序(從小到大,由低到高),不會(huì)修改數(shù)組的鍵名。該函數(shù)主要用于關(guān)聯(lián)數(shù)組,語(yǔ)法格式如下:
ksort($array [, $sort_flags = SORT_REGULAR])
參數(shù)說(shuō)明如下:
- $array:為要排序的數(shù)組。
- $sort_flags:為可選參數(shù),用來(lái)定義函數(shù)排序的模式,默認(rèn)值為“SORT_REGULAR”。$sort_flags 的取值與 sort() 函數(shù)中的 $sort_flags 參數(shù)相同。
【示例】使用 ksort() 函數(shù)對(duì)數(shù)組進(jìn)行排序。
1234,
'url' => 'http://c.biancheng.net/php/',
'language' => 'PHP',
'article' => '數(shù)組排序函數(shù)'
);
echo '';
ksort($info, 0);
print_r($info);
?>
運(yùn)行結(jié)果如下:
Array
(
[article] => 數(shù)組排序函數(shù)
[id] => 1234
[language] => PHP
[url] => http://c.biancheng.net/php/
)
6、krsort() 函數(shù)
krsort() 函數(shù)可以根據(jù)數(shù)組的鍵值對(duì)數(shù)組進(jìn)行降序排序(從大到小,由高到低),不會(huì)修改數(shù)組的鍵名。該函數(shù)主要用于關(guān)聯(lián)數(shù)組,語(yǔ)法格式如下:
krsort($array [, $sort_flags = SORT_REGULAR])
參數(shù)說(shuō)明如下:
- $array:為要排序的數(shù)組。
- $sort_flags:為可選參數(shù),用來(lái)定義函數(shù)排序的模式,默認(rèn)值為“SORT_REGULAR”。$sort_flags 的取值與 sort() 函數(shù)中的 $sort_flags 參數(shù)相同。
【示例】使用 krsort() 函數(shù)對(duì)數(shù)組進(jìn)行排序。
1234,
'url' => 'http://c.biancheng.net/php/',
'language' => 'PHP',
'article' => '數(shù)組排序函數(shù)'
);
echo '';
krsort($info, 0);
print_r($info);
?>
運(yùn)行結(jié)果如下:
Array
(
[url] => http://c.biancheng.net/php/
[language] => PHP
[id] => 1234
[article] => 數(shù)組排序函數(shù)
)
分享名稱:PHP數(shù)組排序函數(shù)
標(biāo)題來(lái)源:http://m.5511xx.com/article/dhdihpd.html


咨詢
建站咨詢
