我想按日期对数组进行排序。
我使用以下代码对数组进行排序
<?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 )
对于正确的日期顺序,我应该怎么做?
使用以下代码:
$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
)
这里有几个选择。反转日期:例如 2013-11-13。您正在对字符串进行排序。所以它从最小的数字开始。这仅在您拥有年-月-日时才有效。
您还可以使用时间戳。因此,从时间戳开始,对所有值进行排序。使用后:
foreach($a as $key => $value) {
$a[$key] = date("d-m-Y", $value);
}
print_r($a);