对MASSIVE多维数组进行排序

时间:2013-06-25 13:07:01

标签: php arrays sorting multidimensional-array

我有一个具有以下结构的数组。如何通过嵌入其中的订单字段对其进行排序?

[all_items] => Array (
        [item_type] => Array (
             [item_price] => Array (
                  [item_id] => Array (
                       [item] (Object){
                         [amount] => 75
                         [id] => 1
                         [name] => Bike
                         [order] => 1
                       }
                   )
              )
         )
 )

1 个答案:

答案 0 :(得分:1)

usort可以接受要排序的函数。您可以使用它来对数组进行排序。

usort($array, function($a,$b){
   return reset(reset(reset($a)))->order - reset(reset(reset($b)))->order;
});

(注意传递这样的函数需要PHP 5.3。如果< 5.3)将其替换为方法名称

希望有人可以提出一些不那么难看的东西。

正如Rikesh指出的那样,除非你需要这样一个深度嵌套的数组,否则将它扁平化会使它更容易使用。