入れ子になったフィールドによって多次元 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 サイトの他の関連記事を参照してください。