如何对以下数组进行排序?

时间:2011-05-02 15:14:11

标签: php sorting

我从数据库中获取记录,返回数组如下:

Array
(
[0] => stdClass Object
    (
        [id] => 2
        [name] => ravi
        [text] => hey
        [date] => 2011-05-1
    )

[1] => stdClass Object

    (
        [id] => 3
        [name] => shiv
        [text] => bye
        [date] => 2011-04-29
    )

[2] => stdClass Object

    (
        [id] => 4
        [name] => adi
        [text] => hello
        [date] => 2011-04-30
    )
)

如何根据日期元素对此进行排序?

3 个答案:

答案 0 :(得分:3)

您应该在实际获取之前对其进行排序,这意味着使用数据库查询中已有的“ORDER BY”子句!

为什么?

  • 因为你写的代码少了很多
  • 因为它更快
  • 因为它更容易重构

答案 1 :(得分:2)

您可能会发现usort()功能有用:http://docs.php.net/manual/en/function.usort.php

您可以将以下函数作为第二个参数传入:

function cmp($a, $b)
{
    if ($a->date == $b->date) {
        return 0;
    }
    return ($a->date < $b->date) ? -1 : 1;
}

答案 2 :(得分:1)

理想情况下,您应该使用...ORDER BY日期..

在查询中进行排序

..但如果你真的想用php做,请查看sort下手册中的用户注释,有如何排序的例子(你可以用rsort()或asort申请()或arsort()取决于你是想保存键还是降序或等等)

相关问题