2013-06-25 55 views
-3

我有一個具有以下結構的數組。我如何通過嵌入在那裏的訂單字段進行分類?排序一個MASSIVE多維數組

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

如果你在最後一個數組中設置所有的值,我不知道設置多維數組的目的是什麼。我會建議你先嚐試奉承你的陣列。 – Rikesh

+0

你想在這個過程中壓扁數組嗎?如果是這樣,你可以先弄平,然後再分類。如果不是,那麼''[[[[1],[3]],[[2]]]]') –

+2

@Rikesh *「嘿,陣列。今天真的很好看!」這個? ; P – deceze

回答

1

usort可以接受一個排序功能。你可以用這個來排列數組。

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

(注傳遞這樣的函數需要PHP 5.3替換該用的方法名稱,如果< 5.3)

希望有人能拿出的東西少一點醜陋。如Rikesh指出的那樣,除非你有理由需要這樣一個深度嵌套的數組,否則將它平坦一點會使它更易於使用。

+0

要試試這個! – ytrewq