PHP の多次元配列のソート問題
滿天的星座
滿天的星座 2017-05-16 13:08:20
0
9
589

この問題は、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
];

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

滿天的星座
滿天的星座

全員に返信(9)
左手右手慢动作

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

リーリー リーリー
いいねを押す +0
迷茫

リーリー

印刷結果:

リーリー
いいねを押す +0
大家讲道理

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

いいねを押す +0
PHPzhong

<?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
我想大声告诉你

リーリー

いいねを押す +0
大家讲道理

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

リーリー
いいねを押す +0
某草草

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

いいねを押す +0
伊谢尔伦

リーリー

いいねを押す +0
Peter_Zhu

$beforeSort = [

リーリー

];

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

リーリー

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

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート