使用usort()和sort()函数对日期数组进行排序

时间:2012-11-18 19:53:07

标签: php date sorting

  

可能重复:
  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);

非常感谢你。

1 个答案:

答案 0 :(得分:1)

  

使用uksort按键排序回调

     回调中的

只是将日期解析为时间戳并使用简单的比较

Sudo Code:

function cmp($a, $b)
{
    global $array;
    return strcmp($array[$a]['db'], $array[$b]['db']);
}

uksort($array, 'cmp');