在PHP中,陣列是一種非常常用的資料型別。對於陣列的處理,排序是一個非常重要的操作。在PHP中,有許多內建的排序函數。本文將介紹PHP數組內建的排序方法。
sort()函數用於按升序對陣列進行排序。具體語法為:
sort(array &$array [, int $sort_flags = SORT_REGULAR]): bool
其中,$array表示需要排序的數組,$sort_flags表示排序規則。預設情況下,按升序排序,$sort_flags可選參數有以下幾種類型:
範例:
$arr = array("apple", "banana", "grape");
sort($arr);
print_r($ arr);
輸出結果:
Array ( [0] => apple [1] => banana [2] => grape )
rsort()函數與sort()函數非常相似,只是它是以降序對陣列進行排序。具體語法為:
rsort(array &$array [, int $sort_flags = SORT_REGULAR]): bool
範例:
#$arr = array("apple", "banana", "grape");
rsort($arr);
print_r($arr);
輸出結果:
Array ( [0] => grape [1] => banana [2] => apple )
asort()函數將陣列依照升序排序,並且保留原來的鍵名。具體語法為:
asort(array &$array [, int $sort_flags = SORT_REGULAR]): bool
範例:
#$arr = array("b" = > 2, "a" => 1, "c" => 3);
asort($arr);
print_r($arr);
輸出結果:
Array ( [a] => 1 [b] => 2 [c] => 3 )
arsort ()函數與asort()函數非常相似,只是它是以降序對陣列進行排序。具體語法為:
arsort(array &$array [, int $sort_flags = SORT_REGULAR]): bool
範例:
#$arr = array("b" = > 2, "a" => 1, "c" => 3);
arsort($arr);
print_r($arr);
輸出結果:
Array ( [c] => 3 [b] => 2 [a] => 1 )
ksort ()函數依照鍵名升序對陣列進行排序。具體語法為:
ksort(array &$array [, int $sort_flags = SORT_REGULAR]): bool
範例:
#$arr = array("b" = > 2, "a" => 1, "c" => 3);
ksort($arr);
print_r($arr);
輸出結果:
Array ( [a] => 1 [b] => 2 [c] => 3 )
krsort ()函數與ksort()函數非常相似,只是它是依照鍵名降序對陣列進行排序。具體語法為:
krsort(array &$array [, int $sort_flags = SORT_REGULAR]): bool
範例:
#$arr = array("b" = > 2, "a" => 1, "c" => 3);
krsort($arr);
print_r($arr);
輸出結果:
Array ( [c] => 3 [b] => 2 [a] => 1 )
usort ()函數用於對陣列進行自訂排序,即依照自己定義的規則進行排序。具體語法為:
usort(array &$array, callable $function): bool
其中,$array表示需要排序的陣列,$function表示用於比較陣列元素的函數。函數在比較時需要傳回一個整數,表示兩個值的比較結果。
範例:
$arr = array(3, 5, 1, 4, 2);
usort($arr, function($a, $b) {
if ($a == $b) return 0; return ($a < $b) ? -1 : 1;
});
print_r($arr);
輸出結果:
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )
uasort()函數與usort()函數非常相似,只是它保留了原來的鍵名。具體語法為:
uasort(array &$array, callable $function): bool
範例:
$arr = array("b" => 2, "a" => 1, "c" => 3);
uasort($arr, function($a, $b) {
if ($a == $b) return 0; return ($a < $b) ? -1 : 1;
});
print_r($ arr);
輸出結果:
Array ( [a] => 1 [b] => 2 [c] => 3 )
uksort()函數依照自訂規則對陣列的鍵名進行排序。具體語法為:
uksort(array &$array, callable $function): bool
其中,$array表示需要排序的數組,$function表示用於比較數組鍵名的函數。函數在比較時需要傳回一個整數,表示兩個鍵名的比較結果。
範例:
$arr = array("b" => 2, "a" => 1, "c" => 3);
uksort($ arr, function($a, $b) {
if ($a == $b) return 0; return ($a < $b) ? -1 : 1;
});
print_r($arr);
輸出結果:
Array ( [a] => 1 [b] => 2 [c] => 3 )
#總結:
在PHP中,有多種排序函數可供選擇。根據不同的需求,選取不同的排序方法,可以讓我們更有效率地操作陣列。
以上是聊聊PHP數組內建的排序方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!