我有一个具有以下结构的数组。如何通过嵌入其中的订单字段对其进行排序?
[all_items] => Array (
[item_type] => Array (
[item_price] => Array (
[item_id] => Array (
[item] (Object){
[amount] => 75
[id] => 1
[name] => Bike
[order] => 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指出的那样,除非你需要这样一个深度嵌套的数组,否则将它扁平化会使它更容易使用。