我想在日期基础上对数组进行排序。
我使用下面的代码对数组进行排序
<?php
$a=array("14-10-2013","15-10-2013","16-10-2013","13-11-2013","17-11-2013","18-10-2013","19-10-2013");
array_multisort($a);
print_r($a);
?>
这给了我结果
Array ( [0] => 13-11-2013 [1] => 14-10-2013 [2] => 15-10-2013 [3] => 16-10-2013 [4] => 17-11-2013 [5] => 18-10-2013 [6] => 19-10-2013 )
这不是正确的顺序。
正确的顺序应该是
Array ( [0] => 14-10-2013 [1] => 15-10-2013 [2] => 16-10-2013 [3] => 18-10-2013 [4] => 19-10-2013 [5] => 13-11-2013 [6] => 17-11-2013 )
对于正确的日期顺序,我该怎么做?
答案 0 :(得分:2)
使用此代码:
$a=array("14-10-2013","15-10-2013","16-10-2013","13-11-2013","17-11-2013","18-10-2013","19-10-2013");
usort($a, "sortFunction");
print_r($a);
function sortFunction( $a, $b ) {
return strtotime($a) - strtotime($b);
}
OUTPUT
Array
(
[0] => 14-10-2013
[1] => 15-10-2013
[2] => 16-10-2013
[3] => 18-10-2013
[4] => 19-10-2013
[5] => 13-11-2013
[6] => 17-11-2013
)
答案 1 :(得分:0)
这里有几个选项。 例如,反转日期:2013-11-13。你正在排序一个字符串。所以它从最低的数字开始。这只适用于有年 - 月 - 日期的情况。
您还可以使用时间戳。因此,从时间戳中,对所有值进行排序。之后使用:
foreach($a as $key => $value) {
$a[$key] = date("d-m-Y", $value);
}
print_r($a);