2012-06-02 83 views
1

您好我需要按日期排序的數組:PHP排序mutlidim陣列usort不工作

這是我的數組$ GET:

Array ( 
    [0] => Array ( 
     [Date] => 02.06.2012 
     [Theme] => test 
    ) 
    [1] => Array ( 
     [Date] => 03.07.2012 
     [Theme] => lol 
    ) 
    [2] => Array ( 
     [Date] => 09.06.2012 
     [Theme] => hm 
    ) 
) 

我嘗試下面的代碼:

function date_sort($a, $b) { 
    return strcmp($a['Date'], $b['Date']); 
} 

usort($get, 'date_sort'); 

但我得到的只是無序日期。我的日期設定爲dd.mm.yyyy!

回答

2

嘗試做

function date_sort($a, $b) { 
    return strtotime($a['Date']) - strtotime($b['Date']); 
} 
+0

的作品就像一個魅力謝謝! – JPM

+1

stortotime()在一個usort回調函數中?如果你有很多元素需要排序,那將會變得很慢。最好先運行數組,然後用轉換的日期填充一個額外的元素;那麼排序會更快。 – Spudley

+1

也要注意'strtotime()' - 它會假設一個日期是'dd mm yyyy'還是'mm dd yyyy';閱讀手冊頁並確保您的日期不會被錯誤地轉換。 – Spudley