多次元 PHP 配列を複数のフィールドでソートするにはどうすればよいですか?

DDD
リリース: 2024-11-22 05:53:14
オリジナル
896 人が閲覧しました

How Can I Sort a Multidimensional PHP Array by Multiple Fields?

複数のフィールド値による多次元配列の並べ替え

PHP では、array_multisort() を使用して、複数のフィールド値による多次元配列の並べ替えを実行できます。

次の点を考慮してくださいarray:

$data = [
    [
        "destination" => "Sydney",
        "airlines" => "airline_1",
        "one_way_fare" => 100,
        "return_fare" => 300
    ],
    [
        "destination" => "Sydney",
        "airlines" => "airline_2",
        "one_way_fare" => 150,
        "return_fare" => 350
    ],
    [
        "destination" => "Sydney",
        "airlines" => "airline_3",
        "one_way_fare" => 180,
        "return_fare" => 380
    ]
];
ログイン後にコピー

この配列を return_fare で昇順に並べ替え、one_way_fare で昇順で並べ替えるには、array_multisort():

// Extract specific fields into individual arrays
$return_fare = array_column($data, 'return_fare');
$one_way_fare = array_column($data, 'one_way_fare');

// Sort arrays using multiple criteria
array_multisort($return_fare, SORT_ASC, $one_way_fare, SORT_ASC, $data);

// Print sorted array
print_r($data);
ログイン後にコピー

代替案を使用します。メソッド:

  • array_orderby() 関数: 簡潔な解決策として、array_multisort() のラッパーを提供する array_orderby() 関数の使用を検討してください。
  • **array_column() と array_multisort()**: 反復処理を避けるため配列の場合は、array_column()` を使用して、並べ替え前に特定のフィールド値を抽出します。
array_multisort(array_column($data, 'return_fare'), SORT_ASC,
                array_column($data, 'one_way_fare'), SORT_ASC,
                $data);
ログイン後にコピー

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

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