PHP中有很多內(nèi)置的函數(shù),其中之一就是ksort()函數(shù)。這個(gè)函數(shù)是用來對關(guān)聯(lián)數(shù)組按照鍵名進(jìn)行升序排列的。如果你想要按照鍵名對一個(gè)關(guān)聯(lián)數(shù)組進(jìn)行排序,那么ksort()函數(shù)就是你的最佳選擇。
下面我們來看一下ksort()函數(shù)的基本使用方法:
$fruits = array("d" =>"lemon", "a" =>"orange", "b" =>"banana", "c" =>"apple"); ksort($fruits); foreach ($fruits as $key =>$val) { echo "$key = $val\n"; }在這個(gè)例子中,我們定義了一個(gè)關(guān)聯(lián)數(shù)組$fruits,然后通過ksort()函數(shù)對其進(jìn)行了按鍵名升序排列的操作。最后使用foreach循環(huán)遍歷關(guān)聯(lián)數(shù)組輸出鍵名和對應(yīng)的值,結(jié)果如下:
a = orange b = banana c = apple d = lemon因?yàn)閗sort()函數(shù)是按鍵名進(jìn)行升序排列的,所以它是不關(guān)心值的內(nèi)容的。無論你的值是什么,只要鍵名是按升序排列的,ksort()函數(shù)就會把它排列到正確的位置上。 下面我們再來看一個(gè)例子,這次是一個(gè)多維關(guān)聯(lián)數(shù)組,我們會發(fā)現(xiàn),ksort()函數(shù)同樣可以對其按照鍵名進(jìn)行升序排列:
$students = array( "1001" =>array("name" =>"Amy", "age" =>18, "score" =>90), "1002" =>array("name" =>"Bob", "age" =>20, "score" =>85), "1003" =>array("name" =>"Cathy", "age" =>19, "score" =>95), "1004" =>array("name" =>"David", "age" =>21, "score" =>80) ); ksort($students); //按學(xué)生編號升序排列 foreach ($students as $key =>$val) { echo "編號:$key,姓名:" . $val['name'] . ",年齡:" . $val['age'] . ",成績:" . $val['score'] . "\n"; }結(jié)果如下:
編號:1001,姓名:Amy,年齡:18,成績:90 編號:1002,姓名:Bob,年齡:20,成績:85 編號:1003,姓名:Cathy,年齡:19,成績:95 編號:1004,姓名:David,年齡:21,成績:80從上面的例子可以看出,ksort()函數(shù)對于多維關(guān)聯(lián)數(shù)組同樣適用,只需要進(jìn)行一次按鍵名升序排列的操作即可。 在使用ksort()函數(shù)時(shí),需要注意的一點(diǎn)是,這個(gè)函數(shù)只能按照鍵名進(jìn)行升序排列,如果你希望按照鍵值進(jìn)行排序,那么就需要使用另外一個(gè)函數(shù)了。 總之,無論是單維關(guān)聯(lián)數(shù)組還是多維關(guān)聯(lián)數(shù)組,ksort()函數(shù)都是用來按照鍵名進(jìn)行升序排列的好方法。如果你需要對這類數(shù)組進(jìn)行排序操作,那么ksort()函數(shù)是你的不二選擇。
下一篇java站編號和站名