この問題は、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
];
これを実現する別の方法はありますか?
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); );
天蓬老师2017-05-16 13:10:20
$beforeSort = [
リーリー];
foreach ($beforeSort as $key => $value) {
リーリー}
array_multisort($chinese, SORT_ASC, $math, SORT_ASC, $beforeSort);
print_r($beforeSort);