2011-08-20 58 views
8

嗨我有一个数组与键的日期格式。PHP的 - 排序数组与日期作为密钥

$arr = array(

    "20110805" => "2", 
    "20100703" => "5", 
    "20110413" => "3", 
    "20100805" => "4", 
    "20100728" => "6", 
    "20090416" => "7", 
    "20080424" => "8", 
    "20110819" => "1", 
); 

我怎样才能按键排序这个数组。谢谢。

+0

-1谷歌: “通过按键PHP数组排序” – fresskoma

+1

@TheHorse - 有很多事情可以通过google搜索找到。比起LMGTFY类型的注释,更希望在SO上显示重复。 :) –

+0

@Jared Farrish - 那么这么简单的问题。我找到答案在谷歌与出php知识 – TheHorse

回答

20

以这种格式的日期,按字母顺序比较就可以正常工作。使用PHP函数ksort

ksort($arr); 
+2

例如:http://codepad.org/5WjP74TR –

+0

嗨,感谢您的回答,ksort会按键对数组进行排序,但这里的关键是日期和ksort不按顺序对数组进行排序。我需要将键转换为有效的日期格式,然后执行ksort,但这样做会影响其余的代码。有什么建议么?? – bharath

+1

@bharath - 您的日期在年月日订单中,这意味着您可以使用正常排序方式对它们进行排序,并且它会按照正确的顺序进行排序,只要您已将'0'预编辑为短MONTH和DAY即可。你的“日期”基本上只是一个可以解析成日期的数字。 –

4

只是这一行代码:

ksort($arr);