現在の位置: ホーム> 最新記事一覧> PHP多次元配列選別スキル:ソートの原則と実用的な方法の詳細な分析

PHP多次元配列選別スキル:ソートの原則と実用的な方法の詳細な分析

M66 2025-07-23

PHP多次元アレイを並べ替えるための実用的なヒント

PHP開発では、多次元配列のソートを一般的に要求しています。合理的な選別方法をマスターすると、データ処理の効率とコードの読みやすさを効果的に改善できます。

サンプルデータ構造

学生の名前と成績を含む配列があるとします。最初に名前で昇順で並べ替え、次にグレードごとに降順で並べ替えたいと考えています。

 $students = [
    ['name' => 'Alice', 'score' => 90],
    ['name' => 'Bob', 'score' => 85],
    ['name' => 'Charlie', 'score' => 95],
    ['name' => 'Dave', 'score' => 80],
];

カスタム関数に基づいて実装のソート

比較関数を定義することにより、ソートルールを正確に制御できます。次の関数は最初に名前を比較し、同じ名前が結果を比較します。

 function compare_students($a, $b) {
    if ($a['name'] == $b['name']) {
        return $b['score'] <=> $a['score']; // 結果の減少
    }
    return strcmp($a['name'], $b['name']); // 昇順の名前
}

usort()関数を呼び出して、ソートを完了します。

 usort($students, 'compare_students');

PHP 7.4以降匿名関数ライティング方法

PHP 7.4は、コードをより簡潔にするために、匿名関数の単純化された文章を導入します。

 uasort($students, function($a, $b) {
    if ($a['name'] == $b['name']) {
        return $b['score'] <=> $a['score'];
    }
    return strcmp($a['name'], $b['name']);
});

ソート原理分析

比較関数は、2つの配列要素をパラメーターとして取得し、整数を返して順序関係を表します。ここでは、最初にstrcmp()を使用して、名前の昇順で並べ替えます。名前が同じ場合は、比較演算子<=>を使用して、成績の降順で並べ替えます。

アプリケーション効果ディスプレイ

ソートが完了した後、出力の結果は次のとおりです。

 print_r($students);

アレイは名前でアルファベット順に配置され、同じ名前が使用されるとスコアは高から低に配置されます。

要約します

PHP多次元アレイソートのコアアイデアと方法を習得すると、開発者が複雑なデータソートの問題に柔軟に対処するのに役立ちます。カスタム比較関数とPHP組み込みのソート関数を組み合わせて、コードは簡潔で効率的です。