【问题标题】:php sort array by sub-valuephp按子值排序数组
【发布时间】:2010-12-08 00:42:16
【问题描述】:

这是我的数组,我想我应该使用 usort,但我不知道如何让它工作。

Array
(
    [javascript] => Array
        (
            [core] => Array
                (
                    [0] => Array
                        (
                            [file] => /path/to/file.js
                            [weight] => 0
                        )

                    [1] => Array
                        (
                            [file] => /path/to/file2.js
                            [weight] => 1
                        )

                )

        )

)

我想按权重值对core的索引进行排序,其他文件和权重也会被添加和排序。

【问题讨论】:

    标签: php multidimensional-array sorting


    【解决方案1】:
    usort($array['javascript']['core'], function($a, $b) {
        return $a['weight'] - $b['weight'];
    });
    

    【讨论】:

    • 我需要创建一个实际的函数,而不是你怎么做的,但它运行良好,介意解释一下它在做什么吗?
    • @user 是的,对不起。闭包仅适用于 PHP 5.3。最好的办法是阅读usort manual page。它对如何使用比较函数有一个很好的定义。
    • 不得不将其更改为 $a->weight - $b->weight 因为我正在使用一个对象,但这是完美的,谢谢。
    猜你喜欢
    • 2011-01-29
    • 2011-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-15
    • 2011-09-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多