php - 我应该如何使用 usort 按键对这个数组进行排序?

标签 php arrays multidimensional-array key usort

我想我可能已经阅读了 StackOverflow 上的所有 usort 文章,但我无法理解这篇文章。可能 usort 不是我需要的工具?这是我正在使用的一些数组(我已将其分配给 $allPages):

Array
(
    [0] => Page Object
        (
            [id] => 4
            [slug] => articles
            [created_on] => 2009-08-06 07:16:00
        )

    [1] => Page Object
        (
            [id] => 99
            [slug] => a-brief-history
            [created_on] => 2011-04-25 12:07:26
        )

    [2] => Page Object
        (
            [id] => 98
            [slug] => we-arrive
            [created_on] => 2011-04-24 13:52:35
        )

    [3] => Page Object
        (
            [id] => 83
            [slug] => new-year
            [created_on] => 2011-01-02 14:05:12
        )
)

我正在尝试最终对 created_on 值进行排序,但目前,我决定能够对其中任何一个进行排序!当我使用 usort 尝试正常的 cmp($a, $b) 类型回调时——例如,在 this answer on a usort question 中-- 我只是一片空白。示例:

function cmp($a, $b) {
  return strcmp($a["slug"], $b["slug"]);
}
usort($allPages, 'cmp')

print_r 什么也没给我。这是 PHP 5.2.n,不是 5.3 顺便说一句。

请指导?谢谢你!

最佳答案

数组中的项目是对象,而不是关联数组,因此您需要像这样引用它们:

function cmp($a, $b) {
  return strcmp($a->slug, $b->slug);
}
usort($allPages, 'cmp')

关于php - 我应该如何使用 usort 按键对这个数组进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5915682/

相关文章:

ruby - Ruby 中加星标的变量是什么?

c++用变量决定数组大小

c# - 在C#中将二维数组转换为字符串,寻找最优雅的方式

javascript - php在html代码中访问session变量值

javascript - 未知原因无限循环

php - PayPal:不同用户的多次付款 - PHP

arrays - 在 Common Lisp 中通过引用(而不是通过值)传递子数组

arrays - Go中的多维数组

php - HHVM 回退到 PHP-FPM

php - 使用 PHP 的多人游戏。我的机会是什么?