1、概念:
一、天然排序法:即按天然數的大小排序,例如「10>2」;
二、計算機標準排序法:是以逐個字符比較,排序,例如「2>10」(由於第一位2>1);
三、數值數組:帶有數字 ID 鍵的數組;
四、關聯數組:帶有指定的鍵的數組,每一個鍵關聯一個值。
五、默認的排序爲按鍵值升序排序,排序方式爲天然排序。數組
2、【幫助理解】
一、a(association)前綴表示以鍵值關聯排序;
二、k(key)前綴表示以鍵名關聯排序;
三、r(reverse)前綴表示以反方向排序。函數
3、排序
例子:spa
1 $arr = array("Ben"=>"2","peter"=>"10","Joe"=>"30"); 2 echo "-------------echo array-------------<br>"; 3 foreach ($arr as $key => $value) { 4 # code... 5 echo "key= ".$key.",value= ".$value."<br>"; 6 }
一、排序數值數組:
1)、sort:默認的排序,即按鍵值升序排序,由於該函數用於排序一維數組,全部排序出來的鍵名會被從新規定,關聯數組用此方法排序,則關聯數組的鍵名不被保留,換成的是數字鍵。
2)、rsort:該函數與sort函數用法相似,不一樣的是按鍵值逆序排序。code
1 echo "-------------sorts by sort-------------<br>"; 2 sort($arr); 3 foreach ($arr as $key => $value) { 4 # code... 5 echo "key= ".$key.",value= ".$value."<br>"; 6 } 7 8 echo "-------------sorts by rsort-------------<br>"; 9 rsort($arr); 10 foreach ($arr as $key => $value) { 11 # code... 12 echo "key= ".$key.",value= ".$value."<br>"; 13 }
輸出結果:
-------------echo array-------------
key= Ben,value= 2
key= peter,value= 10
key= Joe,value= 30
-------------sorts by sort-------------
key= 0,value= 2
key= 1,value= 10
key= 2,value= 30
-------------sorts by rsort-------------
key= 0,value= 30
key= 1,value= 10
key= 2,value= 2blog
二、排序關聯數組:
關聯數組的排序有兩種排序項,第一種以數組的鍵名排序,第二種以數組的鍵值排序。
按鍵名排序:
1)、ksort:按關聯數組的鍵名升序排序,排序的結果保留鍵值的關聯關係。
2)、krsort:按關聯數組的鍵名逆序排序,排序的結果保留鍵值的關聯關係。排序
1 echo "-------------sorts by ksort--------------<br>"; 2 ksort($arr); 3 foreach ($arr as $key => $value) { 4 # code... 5 echo "key= ".$key.",value= ".$value."<br>"; 6 } 7 8 echo "-------------sorts by krsort-------------<br>"; 9 krsort($arr); 10 foreach ($arr as $key => $value) { 11 # code... 12 echo "key= ".$key.",value= ".$value."<br>"; 13 }
輸出結果:
-------------echo array-------------
key= Ben,value= 2
key= peter,value= 10
key= Joe,value= 30
-------------sorts by ksort--------------
key= Ben,value= 2
key= Joe,value= 30
key= peter,value= 10
-------------sorts by krsort-------------
key= peter,value= 10
key= Joe,value= 30
key= Ben,value= 2 ci
按鍵值排序:
1)、asort:按關聯數組的鍵值升序排序,排序的結果保留鍵值的關聯關係
2)、arsort:按關聯數組的鍵值逆序排序,排序的結果保留鍵值的關聯關係。io
1 echo "-------------sorts by asort-------------<br>"; 2 asort($arr); 3 foreach ($arr as $key => $value) { 4 # code... 5 echo "key= ".$key.",value= ".$value."<br>"; 6 } 7 8 echo "-------------sorts by arsort-------------<br>"; 9 arsort($arr); 10 foreach ($arr as $key => $value) { 11 # code... 12 echo "key= ".$key.",value= ".$value."<br>"; 13 }
輸出結果:
-------------echo array-------------
key= Ben,value= 2
key= peter,value= 10
key= Joe,value= 30
-------------sorts by asort-------------
key= Ben,value= 2
key= peter,value= 10
key= Joe,value= 30
-------------sorts by arsort-------------
key= Joe,value= 30
key= peter,value= 10
key= Ben,value= 2class