【问题标题】:Need to sort a group of array according to specific key value php需要根据特定的键值对一组数组进行排序 php
【发布时间】:2017-01-27 15:57:18
【问题描述】:

我需要帮助来对具有不同组且每个组具有相同值的数组进行排序。我想按降序对组进行排序。请看下面:

Array
(
    [0] => Array
        (
            [0] => Array
                (
                    [name] => rose
                    [price] => 3
                )

            [1] => Array
                (
                    [name] => daisy
                    [price] => 3
                )

            [2] => Array
                (
                    [name] => orchid
                    [price] => 3
                )

        )
[1] => Array
    (
        [0] => Array
            (
                [name] => rose
                [price] => 1
            )

        [1] => Array
            (
                [name] => daisy
                [price] => 1
            )

        [2] => Array
            (
                [name] => orchid
                [price] => 1
            )

    )

[2] => Array
    (
        [0] => Array
            (
                [name] => rose
                [price] => 2
            )

        [1] => Array
            (
                [name] => daisy
                [price] => 2
            )

        [2] => Array
            (
                [name] => orchid
                [price] => 2
            )

    )

)

我希望它像这样排序:

Array
(
    [0] => Array
        (
            [0] => Array
                (
                    [name] => rose
                    [price] => 3
                )

            [1] => Array
                (
                    [name] => daisy
                    [price] => 3
                )

            [2] => Array
                (
                    [name] => orchid
                    [price] => 3
                )

        )

[1] => Array
    (
        [0] => Array
            (
                [name] => rose
                [price] => 2
            )

        [1] => Array
            (
                [name] => daisy
                [price] => 2
            )

        [2] => Array
            (
                [name] => orchid
                [price] => 2
            )

    )

[2] => Array
    (
        [0] => Array
            (
                [name] => rose
                [price] => 1
            )

        [1] => Array
            (
                [name] => daisy
                [price] => 1
            )

        [2] => Array
            (
                [name] => orchid
                [price] => 1
            )

    )

)

请注意,我有一大群人。但这只是从中得到一个想法的一部分。

从上面了解到,我希望上面的数组按照价格键降序排列。

提前致谢!

【问题讨论】:

  • 这里有很多类似的问题,但你又写了一个。您是否尝试过任何方法或只是想要代码?
  • 组是根据价格对吗?
  • 我试过 uasort 但没有用。
  • 是的 .. @AbdullahMallik
  • 有人来回答这个问题吗?这很重要。

标签: php arrays multidimensional-array


【解决方案1】:

试一试。

uasort($array, function ($a, $b) {
    $price_a = array_values($a)[0]['price'];
    $price_b = array_values($b)[0]['price'];

    return $price_b - $price_a;
});

注意:如果组为空,则会出现错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-14
    • 1970-01-01
    • 1970-01-01
    • 2017-08-11
    • 2018-03-12
    • 1970-01-01
    • 1970-01-01
    • 2011-04-05
    相关资源
    最近更新 更多