インデックス配列の降順ソート
CoddyのPHPジャーニー「論理とフロー」セクションの一部。レッスン 21/68。
データを逆順、つまり大きい値から小さい値へ、または Z から A へ並べ替える必要がある場合、PHP の rsort() 関数が最適な解決策を提供します。この関数は sort() とまったく同じように動作しますが、要素を昇順ではなく降順に並べ替えます。
スコアのarrayに対してrsort()がどのように動作するかを見てみましょう:
<?php
$scores = [78, 95, 82, 91, 87];
rsort($scores);
print_r($scores);
// 出力: Array ( [0] => 95 [1] => 91 [2] => 87 [3] => 82 [4] => 78 )
?>sort()と同様に、rsort()関数は新しいソート済みコピーを作成するのではなく、元のarrayを直接変更します。rsort()を呼び出した後、arrayはdescending順に恒久的に並べ替えられます。
この関数は、ランキング、リーダーボード、または最も高い値を最初に表示する必要があるあらゆるデータを表示したい場合に特に便利です。テストの scores、売上高、または逆順に並べる必要があるアルファベット順のリストを扱っている場合でも、rsort() はそのタスクを効率的に処理します。
チャレンジ
簡単1 つの入力として、JSON 形式の売上数値の配列を受け取ります。入力を読み取り、JSON 文字列を配列に変換し、rsort() を使用して売上数値を降順に並べ替え、print_r() を使用して並べ替えた配列を出力してください。
入力形式: 数値の JSON 配列を含む 1 行(例: [1250,3400,890,2100,1780])
期待される出力: print_r() を使用して表示された、降順に並べ替えられた配列
自分で試してみよう
<?php
// 入力を読み取る
$input = trim(fgets(STDIN));
// JSON文字列を配列に変換する
$sales = json_decode($input, true);
// TODO: 配列を降順にソートするコードを以下に書いてください
// ソートされた配列を出力する
print_r($sales);
?>このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
論理とフローのすべてのレッスン
自分で練習してみよう: PHPオンラインコンパイラ