PHPの2次元配列を特定のフィールドでソートするにはどうすればよいですか?

2 次元配列をあるフィールドで並べ替えるには usort 関数を使うことができる

下記にサンプルコードを掲げます:

$students = array(
    array('name' => 'Alice', 'score' => 80),
    array('name' => 'Bob', 'score' => 90),
    array('name' => 'John', 'score' => 75),
    array('name' => 'Jane', 'score' => 85)
);

usort($students, function($a, $b) {
    return $a['score'] - $b['score'];
});

foreach ($students as $student) {
    echo $student['name'] . ': ' . $student['score'] . "\n";
}

上記のコードでは、usort() 関数を使って $students 配列をソートしていますが、並び替えの基準は各要素の ‘score’ フィールドです。比較関数として匿名関数を定義し、2 つの要素の ‘score’ フィールドの大小を比較することで並び替えます。最後に、foreach ループを使用して並べ替えた配列を反復処理し、各生徒の名前とスコアを出力します。

これが正しい結果ですか?

John: 75
Alice: 80
Jane: 85
Bob: 90

このコードでは、students配列は「スコア」フィールドで昇順にソートされます。別のフィールドでソートする必要がある場合は、比較関数の比較ロジックを変更するだけです。

bannerAds