2012-06-06 55 views
0

我已經採取了看看幾個谷歌居然發現這個堆棧太:How to sort a date array in PHP需要援助,usort要求

I'ts在同一波長,但我不知道我得到很清楚。我也讀過了phpnet文檔......正如我所說的,我對它感到羞恥。

我有一個數組:

Array 
(
    [0] => Array 
     (
      [created] => 2012-06-06 21:26:25 
     ) 

    [1] => Array 
     (
      [created] => 2012-06-06 21:23:45 
     ) 

) 

而且基本上,我需要讓他們在日期爲這個數組排序。 這個回調函數如何爲usort工作?任何例子都會很棒!

回答

1
function MySort($a, $b) 
{ 
    if ($a['created'] == $b['created']) return 0; 
    return $a['created'] < $b['created'] ? -1 : 1; 
} 

然後用...

usort($myarray, "MySort"); 
+0

'$ A [ '創建']'是一個表示日期的字符串。 –

+1

是的,但strtotime不需要執行,因爲它是以yyyy-mm-dd格式顯示的,所以它按照年,月,日,小時,分鐘,秒分別排序。 – craig1231

+0

只要所有的月份/天都是零填充,那麼你很好。否則''5'>'06''。 –

0

usort只是讓你使用自己的標準排序。你可以只是簡單的做到這一點:

usort($array, function($a, $b){ 
    $a = strtotime($a['created']); 
    $b = strtotime($b['created']); 
    return $a-$b; 
});