-3

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

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

1 回答 1

1

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

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

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

希望有人能想出一些不那么丑陋的东西。

正如 Rikesh 指出的那样,除非有理由需要这样一个深度嵌套的数组,否则将其展平一点会使它更易于使用。

于 2013-06-25T13:26:29.070 回答