You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PHP中按date_time字段的最新日期对数组降序排序

PHP数组按date_time字段降序排序问题解答

原函数问题说明

你写的比较函数本身可以实现按日期排序,只是排序方向不符合需求:

  • 当前返回 $t1 - $t2 是升序排序,更早的日期会排在前面,和你要求的「最新日期在前」正好相反。

正确实现方式

方法1:修改比较函数返回值(兼容全PHP版本)

仅需要调换两个时间戳的计算顺序即可:

function compare_date($a, $b)
{
    $t1 = strtotime($a['date_time']);
    $t2 = strtotime($b['date_time']);
    return $t2 - $t1;
}    

usort($array1, 'compare_date');

方法2:PHP 7+ 简化写法(性能更高)

因为你使用的date_time是Y-m-d H:i:s格式,该格式字符串的字典序和时间顺序完全一致,不需要转时间戳即可直接比较,PHP7及以上版本可以用太空船运算符简化代码:

usort($array1, function($a, $b) {
    return $b['date_time'] <=> $a['date_time'];
});

排序后效果

修改后数组会按照你要求的顺序排列:

  • 第一位:Item 2(对应时间2021-08-15 10:44:49)
  • 第二位:Item 3(对应时间2021-08-12 01:45:43)
  • 第三位:Item 1(对应时间2021-08-03 11:42:31)

内容的提问来源于stack exchange,提问作者Malca

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 04:30:02