簡體   English   中英

按3個值對PHP數組排序

[英]Sorting PHP array by 3 values

我需要按三個值對數組進行排序。 這是數組設置的基本設置:

$arr = array(
    '1' => array(
        'start' => '1234',
        'mh' => '12',
        'status' => '1'
    ),
    '2' => array(
        'start' => '9874',
        'mh' => '3',
        'status' => '9'
    ),
    '3' => array(
        'start' => '5678',
        'mh' => '6',
        'status' => '2'
    )
);

目前,我只需要按2個值進行排序,array_multisort就派上用場了。 現在,我需要按以下三個值排序:狀態(低)->啟動(低)-> MH(高)。 這意味着最低狀態是第一,然后是最低啟動,然后是最高MH。

任何幫助,將不勝感激。

按多列排序的一般解決方案:

usort($arr,function($a,$b) {
    return ($a['status'] - $b['status']) // status ascending
        ?: ($a['start'] - $b['start']) // start ascending
        ?: ($b['mh'] - $a['mh']) // mh descending
        ;
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM