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

Php 使用usort()和Sort()函数对日期数组进行排序,php,date,sorting,Php,Date,Sorting,可能重复: 我正在尝试仅使用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

可能重复:

我正在尝试仅使用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);
$dates=数组('10-10-2003','2-17-2002','2-16-2003','1-01-2005','10-10-2004');
函数toTime($date){
返回排序($date,sort\u字符串);
}
函数排序时间($a,$b){
$a=总时间($a);
$b=总时间($b);
如果($a=$b){
返回0;
}
返回$a<$b?-1:1;
}
usort($dates,'sortByTime');
打印(日期);
非常感谢你

用于通过回调按键排序

在回调中,只需将日期解析为时间戳并使用简单的比较

Sudo代码:

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

uksort($array, 'cmp');
用于通过回调按键排序

在回调中,只需将日期解析为时间戳并使用简单的比较

Sudo代码:

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

uksort($array, 'cmp');

你在toTime函数中做什么?Aerik,在toTime函数中,我只是想对数组字符串进行排序。我试着把mm,dd,yyyy分开,但没有成功。瓦斯科维特,是的,这也是我的问题。但是在这里我不能使用mktime()转换器。您收到了什么警告?你能把toTime函数包括在问题中吗?@Emil Vikstrom:function toTime($date){$list=list($month,$day,$year)=explode('-',$date);return sort($list);}我得到sort()的警告-它要求数组,explode()函数-第二个参数应该是字符串。我知道这个函数不正确,可能真的很愚蠢。我刚开始学习PHP,所以我的手脏了。非常感谢您的帮助。您在toTime函数中做什么?Aerik,在toTime函数中,我正在尝试对数组字符串进行排序。我试着把mm,dd,yyyy分开,但没有成功。瓦斯科维特,是的,这也是我的问题。但是在这里我不能使用mktime()转换器。您收到了什么警告?你能把toTime函数包括在问题中吗?@Emil Vikstrom:function toTime($date){$list=list($month,$day,$year)=explode('-',$date);return sort($list);}我得到sort()的警告-它要求数组,explode()函数-第二个参数应该是字符串。我知道这个函数不正确,可能真的很愚蠢。我刚开始学习PHP,所以我的手脏了。如果你不能使用uksort():(只有usort()和sort(),这是正规教育的概念:)打破你的头脑,但不要使用方便的方法:)不能使用uksort():(只有usort()和sort(),这是正规教育的概念:)打破你的头脑,但不要使用方便的方法:)