首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按日期排序二维数组

按日期排序二维数组
EN

Stack Overflow用户
提问于 2011-02-20 18:03:30
回答 3查看 2.7K关注 0票数 1

是否有办法将下列数组按正确的时间顺序排序?

代码语言:javascript
复制
[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

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

非常感谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-02-20 18:11:47

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

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

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

票数 2
EN

Stack Overflow用户

发布于 2011-02-20 18:16:16

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

代码语言:javascript
复制
$keyValues = array();
foreach ($arr as $item) {
    $keyValues[] = strtotime($item['date']);
}
sort($keyValues);
array_multisort($arr, $keyValues);
票数 2
EN

Stack Overflow用户

发布于 2011-02-20 18:09:47

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5058881

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档