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

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

DDD
リリース: 2024-12-02 00:52:14
オリジナル
863 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート