2015-10-31 69 views
0

我解析的JSON文件,json_decode,結果是一個長期的多維數組類似如下:如何使用foreach處理多維php數組?

Array 
(
[Basic] => Array 
    (
     [0] => Array 
      (
       [text] => Taunt. 
       [playerClass] => Shaman 
       [locale] => enUS 
       [mechanics] => Array 
        (
         [0] => Array 
          (
           [name] => Taunt 
          ) 
        ) 
      ) 
    ) 

[Classic] => Array 
    (
     [0] => Array 
      (
       [cardId] => CS2_188o 
       [name] => 'Inspired' 
       [mechanics] => Array 
        (
         [0] => Array 
          (
           [name] => OneTurnEffect 
          ) 
        ) 
      ) 
    ) 
) 

我想用一個foreach將數據插入到一個DataTable,但我不能使它工作與這個多維數組。我會怎麼做?

+0

什麼是你的問題,你有什麼問題? – ashkufaraz

+0

我的問題是,我不能建立這個多維arrary的foreach代碼。 –

+0

是的,所有的社區都允許你這樣做。閱讀文檔知道如何做到這一點:http://php.net/manual/en/control-structures.foreach.php –

回答

0

使用此:

foreach ($items as $item) { 
    if (is_array($item)){ 
    foreach ($item as $it) { 
     echo $it["name"]; 
    } 
    } 
    echo $item["cardId"]; 
    echo $item["name"]; 
    .... 
} 
+0

這與單個arrary正確的工作,但在這裏我們有一個litle大的arrary,你可以看到Arrary - > Arrary - > Array。 –

+0

我改變了我的答案:檢查當前的$ item是否是一個數組。 – Erminesoft

+0

我改變它一點點,包括第二個foreach一些arrarys。 謝謝你的幫助。 :) –

1

必須使用遞歸數組做這樣

function build($fullArray) 
{ 
    foreach ($fullArray as $item) { 
      if (is_array($item)){ 
      build($item); 
      } 
      else{ 
       echo $item["cardId"]; 
       echo $item["name"]; 
       .... 
     } 
    } 
} 
+0

遞歸是必要的。 +1 –