PHP arsort():對陣列排序(降序),並保持索引關係

2020-07-16 10:05:13
PHP arsort() 函數用來對陣列元素進行降序排序(也就是從高到低排序),並保持索引關係。

arsort() 和 asort() 的功能相反,asort() 會對陣列元素進行升序排序。

arsort() 語法如下:

bool arsort ( array &$arr [, int $sort_mode = SORT_REGULAR ] )

引數說明:
  • arr 是要排序的陣列。
  • sort_mode 表示排序模式,是一個可選引數。sort_mode 可以使用如下的值:
    • SORT_REGULAR:正常比較元素,不改變元素的型別(預設值)。
    • SORT_NUMERIC:元素被作為數位來比較。
    • SORT_STRING:元素被作為字串來比較。
    • SORT_LOCALE_STRING:根據當前的區域(locale)設定把元素當作字串比較,可以用 setlocale() 來改變。
    • SORT_NATURAL:和 natsort() 類似,對每個元素以“自然的順序”對字串進行排序,是 PHP 5.4.0 中新增的一個引數。
    • SORT_FLAG_CASE:能夠與 SORT_STRING 或 SORT_NATURAL 合併(OR 位運算),不區分大小寫排序字串。

arsort() 函數呼叫結束後, arr 陣列元素會按照從高到低的順序重新排列,並保持值和索引的關係。

返回值:排序成功返回 TRUE,失敗返回 FALSE。

與陣列排序相關的函數
函數 說明
sort() 對陣列元素進行升序排序(從小到大)。
rsort() 對陣列元素進行降序排序(從大到小)。
asort() 對陣列元素進行升序排序(從小到大),並保持索引關係。
arsort() 對陣列元素進行降序排序(從大到小),並保持索引關係。
shuffle() 對陣列元素進行隨機排序,也就是隨機打亂陣列。

【範例】arsort() 和 asort() 的對比:
<?php
$info = array(
    "url" => "http://c.biancheng.net/php/",
    "language" => "PHP",
    "update" => "2019-10-29",
    "author" => "changsheng yan"
);
$info_copy = $info;
asort($info, SORT_STRING);
print_r($info);
arsort($info_copy, SORT_STRING);
print_r($info_copy);
?>
執行結果:

Array
(
    [update] => 2019-10-29
    [language] => PHP
    [author] => changsheng yan
    [url] => http://c.biancheng.net/php/
)
Array
(
    [url] => http://c.biancheng.net/php/
    [author] => changsheng yan
    [language] => PHP
    [update] => 2019-10-29
)