在PHP中对日期数组进行排序
我们得到一个由 (Ymd) 格式的多个日期组成的数组。我们必须用PHP编写一个程序来按降序对数组中存在的所有日期进行排序。
例子 :
Input : array("2018-06-04", "2014-06-08", "2018-06-05")
Output : 2018-06-05 2018-06-04 2014-06-08
Input : array("2016-09-12", "2009-09-08", "2009-09-09")
Output : 2016-09-12 2009-09-09 2009-09-08
为了在 C/C++/ Java或任何其他通用编程语言中解决这个问题,我们必须根据年和月比较日期,最后根据天比较日期,方法是将它们存储在任何结构或任何其他所需的数据结构中。但是在PHP中,如果我们应用 strtotime()函数,这个问题似乎很容易。 strtotime()函数是一个PHP函数,它将任何格式的给定日期更改为本质上是一个大整数的时间戳,然后在对数组进行排序时,我们可以轻松地使用PHP | usort()函数通过定义一个比较器函数。比较器函数将接受两个日期参数,这些参数将使用 strtotime()函数转换为整数时间戳,然后根据整数时间戳值与排序日期进行比较。
使用的内置函数:
- strtotime() :此函数将给定的日期字符串更改为时间戳(大 int 值)。
- usort() :此函数根据用户定义的比较函数对给定数组进行排序。
下面是上述想法的PHP实现:
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);
?>
输出 :
Array
(
[0] => 2016-09-12
[1] => 2009-09-09
[2] => 2009-09-06
)