2016-05-10 15 views
0

Ich habe das folgende Array.Multidimensionales Array sort php

$mem = array(
1 => array(
    0 => array(
    "start" => "2016-05-16 17:00:00", 
    "end" => "2016-05-16 18:00:00" 
    ), 
    1 => array(
    "start" => "2016-05-16 16:10:00", 
    "end" => "2016-05-16 16:40:00" 
))); 

Ich will es durch den Startwert sortieren, so dass

1 => array(
    "start" => "2016-05-16 16:10:00", 
    "end" => "2016-05-16 16:40:00" 
) 

wird das erste Element des Arrays sein.

Ich habe es mit usort versucht, aber es hat nicht funktioniert.

+0

zeigen, wie Sie versucht, mit usort – splash58

+1

haben Sie überprüft, [diese] (http://stackoverflow.com/questions/8121241/sort -array-basiert-auf-dem-datetime-in-php)? –

Antwort

3

Versuchen:

usort($array[1], function($a, $b) { 

    if ($a["start"] == $b["start"]) 
    { 
     return 0; 
    } 
    return ($a["start"] < $b["start"]) ? -1 : 1; 

}); 
+0

Dies funktionierte, ich musste den Schlüssel verwenden, wie Sie - $ Array [1]. Das war mein Problem. Vielen Dank – amchart

+1

'var_dump ('2016-05-16 16:10:00' <'2016-05-16 04:11:00 PM')' –

3

versuchen Sie Folgendes:

function date_compare($a, $b) 
{ 
    $t1 = strtotime($a['start']); 
    $t2 = strtotime($b['start']); 
    return $t1 - $t2; 
}  
usort($mem[1], 'date_compare'); 
Verwandte Themen