一尘不染

PHP按日期排列数组?

php

我在PHP数组中有一些来自XML或JSON的数据,如下所示:

[0]= array(2) {
    ["title"]= string(38) "Another title"
    ["date"]= string(31) "Fri, 17 Jun 2011 08:55:57 +0200"
}
[1]= array(2) {
    ["title"]= string(38) "My title"
    ["date"]= string(31) "Mon, 16 Jun 2010 06:55:57 +0200"
}

我想做的是按日期订购这两项。

  1. 当排序值位于每个项目内时,是否可以按日期排序?
  2. 我需要将日期格式转换为时间戳吗?

我不想做什么

我可以使用date并将其设置为ID,但是感觉不对,因为两个项目可以具有相同的日期,因此它不是唯一的。


阅读 266

收藏
2020-05-29

共1个答案

一尘不染

您无需在排序之前将日期转换为时间戳,但这是一个好主意,因为如果不使用它,将需要更多的时间进行排序。

$data = array(
    array(
        "title" => "Another title",
        "date"  => "Fri, 17 Jun 2011 08:55:57 +0200"
    ),
    array(
        "title" => "My title",
        "date"  => "Mon, 16 Jun 2010 06:55:57 +0200"
    )
);

function sortFunction( $a, $b ) {
    return strtotime($a["date"]) - strtotime($b["date"]);
}
usort($data, "sortFunction");
var_dump($data);
2020-05-29