ホームページ >バックエンド開発 >PHPチュートリアル >多次元 PHP 配列をネストされたフィールドで効率的に並べ替える方法

多次元 PHP 配列をネストされたフィールドで効率的に並べ替える方法

DDD
DDDオリジナル
2024-12-02 00:52:14805ブラウズ

How to Sort a Multidimensional PHP Array by a Nested Field Efficiently?

入れ子になったフィールドによって多次元 PHP 配列を効率的に並べ替える方法?

PHP では、表形式のデータを表す多次元配列に遭遇する可能性があります。ここで、各要素はフィールドと値のペアの連想配列を保持します。ネストされた配列内の特定のフィールドによってこのデータを並べ替えるタスクは、簡単に実行できます。

次のデータベースに似た配列を考えてみましょう:

$data = [
    [
        'name' => 'Sony TV',
        'price' => 600.00
    ],
    [
        'name' => 'LG TV',
        'price' => 350.00
    ],
    [
        'name' => 'Samsung TV',
        'price' => 425.00
    ]
];

この配列を ' で並べ替えるには「price」フィールドでは、array_multisort() 関数と array_column() 関数を使用して、多次元配列から特定の列 (フィールド) を抽出できます。次のスニペットはこれを実現します:

array_multisort(array_column($data, 'price'), SORT_ASC, $data);

この呼び出しは、元の外側の配列キーを破棄しながら、'price' フィールドに基づいて配列を昇順に並べ替えます。結果としてソートされた配列は次のように表示されます:

[
    [
        'name' => 'LG TV',
        'price' => 350.00
    ],
    [
        'name' => 'Samsung TV',
        'price' => 425.00
    ],
    [
        'name' => 'Sony TV',
        'price' => 600.00
    ]
]

また、PHP バージョン 8 より前の場合は、参照渡しの制限により 2 行のソリューションが必要でした:

$col = array_column($data, 'price');
array_multisort($col, SORT_ASC, $data);

以上が多次元 PHP 配列をネストされたフィールドで効率的に並べ替える方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。