2017-10-04 67 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; 
    } 
}); 

我离开了特定的比较开在这里(只使用通用<=>这里),你需要填写在那些空白你自己。但是这说明了先按键排序和嵌套值排序的一般逻辑。