検索

ホームページ  >  に質問  >  本文

PHP の多次元配列のソート問題

この問題は、Mysql の order by に似ています。必要なのは、配列内のさまざまなフィールドの並べ替えをシミュレートすることです。

次の配列があるとします。

$beforeSort = [
    "0" => ["名前" => 80、"数学" => 50
    "1" => ["名前" => 50、"中国語" => 70
    "2" => ["老王"、"英語" => 50、"数学" => 80
];

次に、配列内の chinese の順序に従う必要があります。同じ場合は、math の順序に従う必要があります。最終的な結果は次の配列になります。< /p>

$afterSort = [
    "2" => ["老王"、"英語" => 50、"数学" => 80
    "0" => ["名前" => 80、"数学" => 50
    "1" => ["名前" => 50、"中国語" => 70
];

これを実現する別の方法はありますか?

滿天的星座滿天的星座2809日前616

全員に返信(9)返信します

  • ringa_lee

    ringa_lee2017-05-16 13:10:20

    これは私自身が使用するバージョンです:

    リーリー リーリー

    返事
    0
  • 迷茫

    迷茫2017-05-16 13:10:20

    リーリー

    印刷結果:

    リーリー

    返事
    0
  • 大家讲道理

    大家讲道理2017-05-16 13:10:20

    配列をセットに変換して処理できます。 PHPコレクションを使用して実装されたsortメソッドは、さまざまな複雑なソートに特化しています

    返事
    0
  • PHPz

    PHPz2017-05-16 13:10:20

    <?php
    //次に、配列内の中国語の順序に従う必要があります。同じであれば、最終的な結果は次の配列になります。
    $beforeSort = [

    ] リーリー

    ];

    $data_math = array_column($beforeSort,'math');
    $data_chinese = array_column($beforeSort,'chinese');
    array_multisort($data_chinese,SORT_ASC,$data_math,SORT_ASC,$beforeSort); );

    返事
    0
  • 我想大声告诉你

    我想大声告诉你2017-05-16 13:10:20

    リーリー

    返事
    0
  • 大家讲道理

    大家讲道理2017-05-16 13:10:20

    ///上の階の人からの答えをお借りします

    リーリー

    返事
    0
  • 某草草

    某草草2017-05-16 13:10:20

    多次元配列をソートするには、array_multisortを実装できる公式関数があります

    返事
    0
  • 伊谢尔伦

    伊谢尔伦2017-05-16 13:10:20

    リーリー

    返事
    0
  • 天蓬老师

    天蓬老师2017-05-16 13:10:20

    $beforeSort = [

    リーリー

    ];

    foreach ($beforeSort as $key => $value) {

    リーリー

    }
    array_multisort($chinese, SORT_ASC, $math, SORT_ASC, $beforeSort);
    print_r($beforeSort);

    返事
    0
  • キャンセル返事