可能重复:
Sort an array of dates using usort() and sort() functions by the timestamp converted by mktime()
我正在尝试仅使用sort()和usort()对日期数组进行排序 - 而不使用mktime()。我试图比较月,日和年,但无法得到正确的结果,加上它给了我一堆警告。 将不胜感激任何帮助。
$dates = array ('10-10-2003', '2-17-2002', '2-16-2003','1-01-2005', '10-10-2004' );
function toTime($date) {
return sort ($date, SORT_STRING);
}
function sortByTime($a, $b) {
$a = toTime($a);
$b = toTime($b);
if($a == $b) {
return 0;
}
return $a < $b ? -1 : 1 ;
}
usort($dates, 'sortByTime');
print_r($dates);
非常感谢你。
答案 0 :(得分:1)
使用uksort按键排序回调
回调中的只是将日期解析为时间戳并使用简单的比较
Sudo Code:
function cmp($a, $b)
{
global $array;
return strcmp($array[$a]['db'], $array[$b]['db']);
}
uksort($array, 'cmp');