php教程自学网 - 轻松零基础学php视频教程
条幅广告
当前位置: 主页 > 原生PHP >

如何对PHP日期数组进行排序

时间:2019-02-24 08:40来源:未知 作者:admin 点击:
有这样一个数组,它是由(Y-m-d)格式的多个日期组成。我们如何使用PHP编写一个程序来对数组中出现的所有日期进行降序排序呢? 那么如果用C/ c++ /Java或任何其他通用编程语言来解决这
有这样一个数组,它是由(Y-m-d)格式的多个日期组成。我们如何使用PHP编写一个程序来对数组中出现的所有日期进行降序排序呢?
 
 
那么如果用C/ c++ /Java或任何其他通用编程语言来解决这个问题,我们必须根据年、月、最后根据天来比较日期,方法是将日期存储在任何结构或任何其他需要的数据结构中。
 
但是在PHP中,我们就可以应用strtotime()函数,这个问题便很容易解决。
 
strtotime()函数是一个PHP函数,它将任何格式的给定日期更改为一个时间戳,该时间戳本质上是一个大整数,然后在对数组进行排序时,我们可以通过定义一个比较函数轻松地使用PHP | usort()函数。
 
comparator函数将接受两个日期参数,它们将使用strtotime()函数转换为整数时间戳,然后与基于整数时间戳值的日期排序进行比较。
 
使用的内置功能:
 
strtotime():该函数将给定的日期字符串更改为时间戳(大的int值)。
 
usort():该函数根据用户定义的比较函数对给定数组进行排序。
 
下面是上述思想的PHP代码实现:
 
<?php 
 
//PHP程序排序数组的日期
 
//用户自定义的比较函数
 
//基于时间戳
 
function compareByTimeStamp($time1, $time2) 
 
 
    if (strtotime($time1) < strtotime($time2)) 
 
        return 1; 
 
    else if (strtotime($time1) > strtotime($time2))  
 
        return -1; 
 
    else
 
        return 0; 
 
 
   
 
// 输入数组 
 
$arr = array("2018-09-12", "2019-09-06", "2019-09-09"); 
 
   
 
// 使用给定的用户定义函数对数组排序
 
usort($arr, "compareByTimeStamp"); 
 
   
 
print_r($arr); 
 
   
 
?>
 
输出:
 
Array 
 
 
    [0] => 2019-09-09 
 
    [1] => 2019-09-06 
 
    [2] => 2018-09-12
 
)
 
(责任编辑:admin)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
相关推荐