我有一个包含这些日期的数组。
.array(34) {
[0]=>
string(24) "Wed Nov 14 2012 09:27:49"
[1]=>
string(24) "Tue Nov 13 2012 15:49:06"
[2]=>
string(24) "Wed Nov 14 2012 09:27:49"
[3]=>
string(24) "Mon Dec 03 2012 13:58:16"
[4]=>
string(24) "Tue Nov 13 2012 14:20:16"
[5]=>
string(24) "Mon Dec 03 2012 16:13:38"
[6]=>
string(24) "Thu Aug 30 2012 15:05:56"
[7]=>
string(24) "Thu Aug 30 2012 15:11:32"
[8]=>
string(24) "Thu Aug 30 2012 15:21:12"
[9]=>
string(24) "Fri Oct 05 2012 10:11:28"
[10]=>
string(24) "Thu Aug 30 2012 15:22:58"
[11]=>
string(24) "Thu Aug 30 2012 14:38:13"
[12]=>
string(24) "Thu Aug 30 2012 15:22:00"
[13]=>
string(24) "Thu Aug 30 2012 15:03:15"
[14]=>
string(24) "Thu Aug 30 2012 15:00:11"
[15]=>
string(24) "Thu Aug 30 2012 15:01:25"
[16]=>
string(24) "Thu Aug 30 2012 15:20:26"
[17]=>
string(24) "Thu Aug 30 2012 14:59:21"
[18]=>
string(24) "Thu Aug 30 2012 15:26:48"
[19]=>
string(24) "Thu Aug 30 2012 14:58:34"
[20]=>
string(24) "Wed Sep 19 2012 09:42:57"
[21]=>
string(24) "Thu Aug 30 2012 15:24:34"
[22]=>
string(24) "Thu Aug 30 2012 15:06:50"
[23]=>
string(24) "Thu Aug 30 2012 14:57:42"
[24]=>
string(24) "Thu Aug 30 2012 15:09:06"
[25]=>
string(24) "Thu Aug 30 2012 14:53:13"
[26]=>
string(24) "Thu Aug 30 2012 15:25:35"
[27]=>
string(24) "Thu Oct 11 2012 15:19:10"
[28]=>
string(24) "Wed Oct 10 2012 11:27:15"
[29]=>
string(24) "Mon Dec 03 2012 16:24:06"
[30]=>
string(24) "Thu Nov 01 2012 10:00:42"
[31]=>
string(24) "Wed Nov 21 2012 11:08:36"
[32]=>
string(24) "Mon Dec 03 2012 16:14:29"
[33]=>
string(24) "Mon Dec 03 2012 16:30:31"
}
如何按日期和时间对此数组进行排序?例如,“Mon Jan 01 2012 01:01:01”将是数组中的第一个元素,“Mon Jan 01 2012 01:01:03”将是数组中的第二个元素。
答案 0 :(得分:0)
这是一个代码,它不是最好的解决方案,但它应该是工作
function sort_date($arr) {
$size = count($arr);
for ($i=0; $i<$size; $i++) {
for ($j=0; $j<$size-1-$i; $j++) {
if (strtotime($arr[$j+1]) < strtotime($arr[$j])) {
swap($arr, $j, $j+1);
}
}
}
return $arr;
}
function swap(&$arr, $a, $b) {
$tmp = $arr[$a];
$arr[$a] = $arr[$b];
$arr[$b] = $tmp;
}
//your first array
var_dump($arr);
//your sorted array
var_dump(sort_date($arr));
答案 1 :(得分:0)
您可以usort
使用此http://php.net/manual/en/function.usort.php)
function comparison($a, $b)
{
return strtotime($a) > strtotime($b);
}
usort($input, 'comparison')
这会调用两个字符串之间的“比较”功能,将其转换为时间并返回更大的字符串。
这段代码写的是我的头脑,但usort
是前进的方法。