ホームページ > バックエンド開発 > PHPチュートリアル > PHP で多次元配列を複数の列でソートするには?

PHP で多次元配列を複数の列でソートするには?

DDD
リリース: 2024-12-20 15:28:14
オリジナル
880 人が閲覧しました

How to Sort a Multidimensional Array by Multiple Columns in PHP?

複数の列で多次元配列を並べ替える方法

多次元配列は、特に複数の列を考慮する必要がある場合、並べ替えが難しい場合があります。幸いなことに、PHP には array_multisort() 関数が用意されており、これを使用すると、複数の条件に基づいて配列を並べ替えることができます。

次の多次元配列について考えてみましょう:

[
    ['ID' => 1, 'title' => 'Boring Meeting', 'date_start' => '2010-07-30', 'event_type' => 'meeting', 'state' => 'new-york'],
    ['ID' => 2, 'title' => 'Find My Stapler', 'date_start' => '2010-07-22', 'event_type' => 'meeting', 'state' => 'new-york'],
    ['ID' => 3, 'title' => 'Mario Party', 'date_start' => '2010-07-22', 'event_type' => 'party', 'state' => 'new-york'],
    ['ID' => 4, 'title' => 'Duct Tape Party', 'date_start' => '2010-07-28', 'event_type' => 'party', 'state' => 'california']
]
ログイン後にコピー

私たちの目標は、これを並べ替えることです。配列は最初にstate、次にevent_type、最後にdate_startによって配列されます。これを実現するには、array_multisort() を使用します:

$sortData = [];
foreach ($data as $key => $row) {
    $sortData['state'][$key] = $row['state'];
    $sortData['event_type'][$key] = $row['event_type'];
    $sortData['date_start'][$key] = $row['date_start'];
}

array_multisort($sortData['state'], SORT_ASC, $sortData['event_type'], SORT_ASC, $sortData['date_start'], SORT_ASC, $data);
ログイン後にコピー

PHP 5.5.0 以降のバージョンでは、array_column() 関数を使用して並べ替えプロセスを簡素化できます:

array_multisort(array_column($data, 'state'), SORT_ASC,
                array_column($data, 'event_type'), SORT_ASC,
                array_column($data, 'date_start'), SORT_ASC,
                $data);
ログイン後にコピー

並べ替えると、配列は次のようになります:

[
    ['ID' => 4, 'title' => 'Duct Tape Party', 'date_start' => '2010-07-28', 'event_type' => 'party', 'state' => 'california'],
    ['ID' => 2, 'title' => 'Find My Stapler', 'date_start' => '2010-07-22', 'event_type' => 'meeting', 'state' => 'new-york'],
    ['ID' => 1, 'title' => 'Boring Meeting', 'date_start' => '2010-07-30', 'event_type' => 'meeting', 'state' => 'new-york'],
    ['ID' => 3, 'title' => 'Mario Party', 'date_start' => '2010-07-22', 'event_type' => 'party', 'state' => 'new-york']
]
ログイン後にコピー

以上がPHP で多次元配列を複数の列でソートするには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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