老鳥談PHP數(shù)組排序
PHP還是比較常用的,于是我研究了一下PHP數(shù)組排序,在這里拿出來和大家分享一下,希望對大家有用。在了解了usort自定義排序后,我們再來看看sort(),這個(gè)函數(shù)可謂是數(shù)組里的排序函數(shù)的鼻祖,大家肯定發(fā)現(xiàn)所有的PHP數(shù)組排序函數(shù)都會帶有sort作為后綴。函數(shù)原型:bool sort ( array &array [, int sort_flags] )說明:基本上每個(gè)函數(shù)都會有個(gè)可選的參數(shù),sort也不例外。這個(gè)可選參數(shù)指明的一種習(xí)慣。
可選類型有如下幾種:
◆SORT_REGULAR – 正常比較單元(不改變類型) //按照ASCII值排序(B大于a)
◆SORT_NUMERIC – 單元被作為數(shù)字來比較 //對整數(shù)和浮點(diǎn)數(shù)常用這種參數(shù)
◆SORT_STRING – 單元被作為字符串來比較
◆SORT_LOCALE_STRING – 根據(jù)當(dāng)前的區(qū)域(locale)設(shè)置來把單元當(dāng)作字符串比較
還是看個(gè)例子,來自幫助手冊:
- php
- $fruits = array("lemon", "orange", "banana", "apple");
- sort($fruits);
- foreach ($fruits as $key => $val) {
- echo "fruits[".$key."] = " . $val . "\n";
- }
- ?>
這個(gè)PHP數(shù)組排序的結(jié)果如下:
- fruits[0] = apple
- fruits[1] = banana
- fruits[2] = lemon
- fruits[3] = orange
大家可以發(fā)現(xiàn),原來是索引為0的lemon,再排序后就變成了apple。為了保持原來的鍵/值不變,你可以把sort()換成asort()即可。另外這兩個(gè)函數(shù)是對鍵進(jìn)行升序的排列(a在b的前面)。如果要使其進(jìn)行降序,只要使用rsort()代替即可,相對應(yīng)的arsort()是保持原來的鍵/值的相關(guān)聯(lián)性的。
下面簡要介紹下ksort()函數(shù)
#T#這個(gè)函數(shù)主要是用來對關(guān)聯(lián)數(shù)組進(jìn)行而存在,它的“姐妹”函數(shù)uksort()是使用自定義函數(shù)而進(jìn)行比較的。一句話:ksort()對于關(guān)聯(lián)級數(shù),對鍵進(jìn)行排序并保留鍵名到數(shù)據(jù)的關(guān)聯(lián)。數(shù)組的自然排序,到目前為止我們所知道的排序函數(shù)要么是用默認(rèn)的方式,要么按照自定義的方式進(jìn)行排序。那么natsort()則使用一種人性化的排序方式來對數(shù)組進(jìn)行排序。在此就不說了,實(shí)例可以查看手冊,如果你手頭上沒有PHP幫助手冊,你可以在瀏覽本站在線幫助手冊進(jìn)行查看
- shuffle()//函數(shù)的使用
- Shuffle()//用來對一個(gè)數(shù)組進(jìn)行隨機(jī)排序,這個(gè)有點(diǎn)像抽簽,其他的就不多說了。到用的時(shí)候再看吧。
- array_rand()//函數(shù)的使用
- array_rand()//函數(shù)和shuffle()差不多,也是隨機(jī)返回?cái)?shù)組中的元素,如下調(diào)用:
- array_rand ( array [, int num_req] ) //可選參數(shù)指出你要返回的個(gè)數(shù)。
到此我想數(shù)組的排序我們已經(jīng)有所了解了,如果還有什么"遺撼"以后再來彌補(bǔ)吧。