首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按日期字段对对象数组进行排序

按日期字段对对象数组进行排序
EN

Stack Overflow用户
提问于 2011-08-20 05:46:23
回答 6查看 27.8K关注 0票数 22

如何重新排列像这样的对象数组:

代码语言:javascript
复制
 [495] => stdClass Object
        (
         [date] => 2009-10-31 18:24:09
         ...
        )
 [582] => stdClass Object
        (
         [date] => 2010-2-11 12:01:42
         ...
        )
 ...

根据date键,最早的在前?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-08-20 05:48:30

代码语言:javascript
复制
usort($array, function($a, $b) {
    return strtotime($a['date']) - strtotime($b['date']);
});

或者,如果您没有PHP 5.3:

代码语言:javascript
复制
function cb($a, $b) {
    return strtotime($a['date']) - strtotime($b['date']);
}
usort($array, 'cb');
票数 49
EN

Stack Overflow用户

发布于 2013-04-22 19:27:51

由于最初的问题是关于对stdClass()对象的数组进行排序,因此如果$a和$b是对象,则可以使用以下代码:

代码语言:javascript
复制
usort($array, function($a, $b) {
    return strtotime($a->date) - strtotime($b->date);
});

或者,如果您没有PHP 5.3:

代码语言:javascript
复制
function cb($a, $b) {
    return strtotime($a->date) - strtotime($b->date);
}
usort($array, 'cb');
票数 22
EN

Stack Overflow用户

发布于 2013-01-23 04:55:20

我想详述arnaud576875的回答。我遇到了同样的问题,但是使用了DateTime对象。这就是我如何能够完成同样的事情。

代码语言:javascript
复制
usort($array, function($a, $b) {
    return $a['date']->format('U') - $b['date']->format('U');
});
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7127764

复制
相关文章

相似问题

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