2017-10-04 63 views
0

我需要一些幫助做一個複雜的多維數組排序。隨後的值,其中一個是啓動時間按鍵和子值複雜排序的多維數組

Array (
    [04/10/2017] => Array ( 
    [438] => Array ( 
     [start_time] => 19:30 
     [end_time] => 20:00 
     [booking_name] => Test 
    ) 
) 
) 

日期隨後ID:

它的結構如下。

我想首先按日期鍵排序數組,然後再按'start_time'值排序。我可以很容易地使用kso​​rt按日期排序,但我無法弄清楚如何按時間排序。我試過循環和使用array_multisort但無濟於事。

任何幫助將不勝感激!

+0

使用'ksort'後使用'uasort' http://php.net/manual/en/function.uasort.php –

+0

@ B.Desai做兩個單獨的排序操作在這裏沒有太大的好處。 – deceze

回答

0

要通過一鍵一個包含值排序,使用uksort

uksort($array, function ($keyA, $keyB) use ($array) { 
    $valueA = $array[$keyA][...]; 
    $valueB = $array[$keyB][...]; 

    if ($keyA == $keyB) { 
     return $valueA <=> $valueB; 
    } else { 
     return $keyA <=> $keyB; 
    } 
}); 

我離開了特定的比較開在這裏(只使用通用<=>這裏),你需要填寫在那些空白你自己。但是這說明了先按鍵排序和嵌套值排序的一般邏輯。