PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHPのrsort()関数とは?配列を降順にソートする方法を解説

rsort()関数とは

rsort()関数は、PHPの組み込み関数の一つで、配列の要素を降順(大きい順)に並べ替えます。この関数は元の配列そのものを直接変更し、成功した場合はTRUE、失敗した場合はFALSEを返します。

なお、rsort()はキーと値の対応関係を保持しないため、ソート後の配列はキーが0から順に振り直される点に注意してください。

構文

rsort(arr, flag)

パラメータ

  • arr − ソート対象となる配列を指定します。

  • flag − 要素の比較方法を指定するオプションのパラメータです。省略可能です。

flagに指定できる主な値は以下の通りです。

  • 0 = SORT_REGULAR(デフォルト)− 通常の方法で要素を比較します。型は変更されません。

  • 1 = SORT_NUMERIC − 要素を数値として比較します。

  • 2 = SORT_STRING − 要素を文字列として比較します。

  • 3 = SORT_LOCALE_STRING − 現在のロケールに基づいて、要素を文字列として比較します。

  • 4 = SORT_NATURAL − 自然順序付け(人間が直感的に理解できる順序)で文字列として比較します。

  • SORT_FLAG_CASESORT_STRINGSORT_NATURALと組み合わせることで、大文字・小文字を区別せずに比較できます。

戻り値

rsort()関数は、ソートに成功した場合にTRUE、失敗した場合にFALSEを返します。

使用例1:数値配列の降順ソート

以下は、数値の配列をrsort()で降順に並べ替える基本的な例です。

<?php
$arr = array(30, 12, 76, 98, 45, 78);
rsort($arr);
print_r($arr);
?>

出力

Array
(
    [0] => 98
    [1] => 78
    [2] => 76
    [3] => 45
    [4] => 30
    [5] => 12
)

最大値の98から最小値の12まで、降順に正しく並べ替えられていることがわかります。

使用例2:文字列配列の降順ソート

SORT_STRINGフラグを指定すると、要素を文字列として比較しソートできます。

<?php
$arr = array("Tim", "Peter", "Anne", "Jacob", "Vera");
rsort($arr, SORT_STRING);
print_r($arr);
?>

出力

Array
(
    [0] => Vera
    [1] => Tim
    [2] => Peter
    [3] => Jacob
    [4] => Anne
)

アルファベット順の逆順(Z→A)に名前が並び替えられています。

まとめ:関連するソート関数

rsort()は配列を降順にソートする際に便利な関数です。用途に応じて、以下の関連関数も活用するとよいでしょう。

  • sort() − 配列を昇順にソートします。

  • asort() / arsort() − キーと値の関係を保持したまま、それぞれ昇順・降順にソートします。

  • usort() − ユーザー定義の比較関数を使って自由にソートします。

  1. PHPのarray_reverse()関数の使い方を解説!配列を逆順にする方法

    PHPのarray_reverse()関数は、配列の要素を逆順に並べ替えた新しい配列を返す関数です。元の配列は変更されず、要素の順序が反転した結果のみを受け取ることができます。構文array_reverse(arr, preservekey)パラメータarr − 逆順にしたい対象の配列を指定します。preservekey − 配列のキーを保持するかどうかを指定します。TRUEまたはFALSEの値を取ります。省略した場合(デフォルトはFALSE)は、キーが振り直され数値キー(0、1、2…)になります。TRUEを指定すると、元のキーと値の対応関係がそのまま維持されます。戻り値array_rever

  2. PHPのarray()関数とは?配列の作成方法をわかりやすく解説

    PHPのarray()関数は、配列を作成するための関数です。PHPにおける配列には、主に以下の3種類が存在します。インデックス配列 − 数値インデックス(0から始まる番号)で要素を管理する配列連想配列 − 文字列などの名前付きキーで要素を管理する配列多次元配列 − 配列の中に1つ以上の配列を含む、入れ子構造の配列構文// 数値インデックスを持つ配列(インデックス配列) array(value1, value2, ...); // 名前付きキーを持つ配列(連想配列) array(key1 => value1, key2 => value2, ...)パラメータvalue − 配列に