在 PHP 中对日期数组进行排序可能很棘手,特别是当日期不是标准化格式时。
In根据您的具体情况,您有不同格式的日期数组,例如“11-01-2012”和“01-01-2014”。使用 asort 函数(按升序对数组进行排序)在这种情况下不起作用,因为它将每个日期视为字符串并忽略年-月-日层次结构。
要正确对数组进行排序,您可以使用自定义排序函数,在比较之前将每个日期转换为可排序的格式。
将日期转换为 UNIX 时间戳
一个简单的方法是将每个日期转换为使用 strtotime() 函数的 UNIX 时间戳。 UNIX 时间戳将日期表示为自 1970 年 1 月 1 日以来的秒数,这使得它们易于比较和排序。
以下是使用自定义排序函数对使用 UNIX 时间戳的日期进行排序的示例:
usort($arr, function ($a, $b) {
return strtotime($a) - strtotime($b);
});
此函数将采用两个日期作为输入(由 $a 和 $b 变量表示)并返回它们的 UNIX 时间戳之间的差异。生成的数组将按时间升序排序。
其他注意事项
需要注意的是,此方法假设所有日期都采用相同的格式。如果您的日期来自不同的来源或使用不同的日期格式,您将需要使用更强大的日期解析和转换库。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3