2012-06-06 60 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; 
});