我们给出了一个由(Ymd)格式的多个日期组成的数组。我们必须用PHP编写一个程序来按降序排列数组中的所有日期。

例子 :

输入:array(“2018-06-04”,“2014-06-08”,“2018-06-05”)
输出:2018-06-05 2018-06-04 2014-06-08

输入:数组(“2016-09-12”,“2009-09-08”,“2009-09-09”)
产量:2016-09-12 2009-09-09 2009-09-08
建议:在继续使用解决方案之前,请先在{IDE}上尝试您的方法。

要在C / C ++ / Java或任何其他通用编程语言中解决这个问题,我们必须根据年份和月份比较日期,最后根据天数将它们存储在任何结构或任何其他所需的数据结构中。但是在PHP中,如果我们应用strtotime()函数,这个问题似乎很容易。PHP函数是一个PHP函数,它将任何格式的给定日期更改为时间戳,这个时间戳本质上是一个大整数,然后在对数组进行排序时,我们可以轻松地使用PHP usort()函数通过定义比较器函数。比较器函数将接受两个日期参数,这些参数将使用strtotime()函数转换为整数时间戳,然后根据整数时间戳值与排序日期进行比较。

使用的内置函数:

strtotime():此函数将给定的日期字符串更改为timestamp(大int值)。
usort():该函数根据用户定义的比较函数对给定数组进行排序。
以下是上述思路的PHP实现:

<?php
// PHP program to sort array of dates

// user-defined comparison function
// based on timestamp
function compareByTimeStamp($time1, $time2)
{
if (strtotime($time1) < strtotime($time2))
return 1;
else if (strtotime($time1) > strtotime($time2))
return -1;
else
return 0;
}

// Input Array
$arr = array("2016-09-12", "2009-09-06", "2009-09-09");

// sort array with given user-defined function
usort($arr, "compareByTimeStamp");

print_r($arr);

?>

输出:

排列

[0] => 2016-09-12
[1] => 2009-09-09
[2] => 2009-09-06

在PHP中对日期数组进行排序-IDC帮帮忙