首頁  >  文章  >  後端開發  >  聊聊PHP數組內建的排序方法

聊聊PHP數組內建的排序方法

PHPz
PHPz原創
2023-04-19 09:22:22463瀏覽

在PHP中,陣列是一種非常常用的資料型別。對於陣列的處理,排序是一個非常重要的操作。在PHP中,有許多內建的排序函數。本文將介紹PHP數組內建的排序方法。

  1. sort()

sort()函數用於按升序對陣列進行排序。具體語法為:

sort(array &$array [, int $sort_flags = SORT_REGULAR]): bool

其中,$array表示需要排序的數組,$sort_flags表示排序規則。預設情況下,按升序排序,$sort_flags可選參數有以下幾種類型:

  • SORT_REGULAR - 預設排序規則,將每個值按照通常的方式進行比較。
  • SORT_NUMERIC - 依照數值大小排序。
  • SORT_STRING - 依照字串的字典序進行排序。
  • SORT_LOCALE_STRING - 根據目前的本地化設置,依照字串的字典順序進行排序。
  • SORT_NATURAL - 依照自然數序列排序。例如,"a1"在"10"之前。
  • SORT_FLAG_CASE - 可與前面任一排序規則搭配使用,將字串字母的大小寫視為不同的。

範例:

$arr = array("apple", "banana", "grape");
sort($arr);
print_r($ arr);

輸出結果:

Array ( [0] => apple [1] => banana [2] => grape )

  1. #rsort()

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 )

  1. asort()

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 )

  1. arsort()

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 )

  1. ksort()

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 )

  1. krsort()

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 )

  1. usort()

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 )

  1. uasort()

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 )

  1. #uksort()

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn