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

如何从PHP日期数组中获取并排序最新的2个日期?

嘿,你已经把排序的核心逻辑搞定了,要拿到最新的两个日期其实只需要在现有基础上做一点点调整就行,我给你整理了完整的实现方案:

实现步骤

  1. 把排序改成降序:原来的函数是按日期从旧到新排序,我们反过来让最新的日期排在数组最前面;
  2. 截取前2个元素:排序后直接取数组的前两个,就是最新的两条数据;
  3. 可选:调整两个元素的顺序:如果需要把这两条按从旧到新排列,再做一次升序排序即可。

完整代码示例

<?php
$data = array(
    array(
        "title" => "Another title",
        "date" => "Fri, 17 Jun 2011 08:55:57 +0200"
    ),
    array(
        "title" => "Another title",
        "date" => "Fri, 17 Jun 2014 08:55:57 +0200"
    ),
    array(
        "title" => "My title",
        "date" => "Mon, 18 Jun 2012 09:55:57 +0200"
    )
);

// 用匿名函数做降序排序,最新日期排最前
usort($data, function($a, $b) {
    return strtotime($b["date"]) - strtotime($a["date"]);
});

// 截取前2个元素,得到最新的两条数据
$latestTwoEntries = array_slice($data, 0, 2);

// (可选)如果需要把这两条按「旧到新」排序,取消下面注释
// usort($latestTwoEntries, function($a, $b) {
//     return strtotime($a["date"]) - strtotime($b["date"]);
// });

// 输出结果验证
print_r($latestTwoEntries);
?>

代码说明

  • 用usort配合匿名函数做降序排序,省去了单独定义函数的麻烦,逻辑更紧凑;
  • array_slice是PHP里专门用来截取数组片段的函数,array_slice(数组, 起始索引, 截取数量)的写法很直观;
  • 注释里的可选排序,如果你需要展示的时候从旧到新排列最新的两条,取消注释就能生效。

内容的提问来源于stack exchange,提问作者Lá Dối Trá

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 12:31:35