1

有没有办法可以将以下数组排序为正确的时间顺序?

[0] => Array
    (
        [date] => Sat, 12 Feb 2011 16:55:13 -0500
        [title] => Product 1
        [link] => http://blabla/product-1
    )

[1] => Array
    (
        [date] => Sat, 25 Sep 2010 17:52:24 -0400
        [title] => Product 2
        [link] => http://blabla/product-2
    )

[2] => Array
    (
        [date] => Sun, 05 Dec 2010 17:41:32 -0500
        [title] => Product 3
        [link] => http://blabla/product-3
    )

[3] => Array
    (
        [date] => Sun, 28 Nov 2010 09:14:39 -0500
        [title] => Product 4
        [link] => http://blabla/product-4
    )

[4] => Array
    (
        [date] => Tue, 07 Dec 2010 18:43:45 -0500
        [title] => Product 5
        [link] => http://blabla/product-5
    )

来自 rss 提要的数组是这样传给我的。

我想按时间顺序对数组进行排序(显然基于 [日期]):产品 1、产品 5、产品 3、产品 4、产品 2

为了能够以真实的顺序展示最新的产品(而不是按照他们给我的奇怪顺序!-顺便说一句,假产品名称,顺序真的完全随机

非常感谢 !

4

3 回答 3

2

使用 usort:http ://www.phpbuilder.com/manual/function.usort.php

您编写了一个比较函数来比较两个“元素”(在本例中为您的日期字符串),并为它们返回正确的顺序。

编辑:您可以使用 strtotime: http://php.net/manual/en/function.strtotime.php将日期字符串转换为时间戳,然后返回结果时间戳的比较。

于 2011-02-20T18:11:47.483 回答
2

您可以使用根据日期array_multisort的排序数组的顺序对原始数组进行排序:

$keyValues = array();
foreach ($arr as $item) {
    $keyValues[] = strtotime($item['date']);
}
sort($keyValues);
array_multisort($arr, $keyValues);
于 2011-02-20T18:16:16.730 回答
1

使用 usort 函数。 http://php.net/manual/en/function.usort.php

于 2011-02-20T18:09:47.250 回答