2016-06-24 93 views
0

我有這樣的陣列回聲出多維數組

[result] => Array 
    (
     [achievements] => Array 
      (
       [0] => Array 
        (
         [id] => 92 
         [achievements] => Array 
          (
           [0] => Array 
            (
             [id] => 6 

             [rewardItems] => Array 
              (
              ) 
        [49] => Array 
            (
             [id] => 1956 

             [rewardItems] => Array 
              (
               [0] => Array 
                (

                 [name] => inv_misc_book_11 

我需要[名稱](如果存在一個)的所有的[rewardItems]陣列。

我試過這樣,但沒有結果,我做錯了什麼?

foreach ($r['result']['achievements']['0']['achievements']['rewardItems'] as $item) echo ' 

', $item['name'], '. 

echo ' 
+0

'if(isset($ item [0] ['name'])){echo $ item [0] ['name']; }' –

回答

0

你已經得到了一些嵌套的循環來遍歷這個結構。

<?php 
$r = array(
'result' => Array 
    (
     'achievements' => Array 
      (
      0 => Array 
       (
        'id' => 92, 
        'achievements' => Array 
         (
         0 => Array 
          (
           'id' => 6, 

           'rewardItems' => Array 
            (
           ) 
          ), 
         49 => Array 
          (
           'id' => 1956, 
           'rewardItems' => Array 
            (
             0 => Array 
              (
               'name' => 'inv_misc_book_11' 
             ) 
           ) 
          ) 
         ) 
       ) 
     ) 
    ) 
); 

foreach ($r['result']['achievements']['0']['achievements'] as $achievement){ 
    if(!empty($achievement['rewardItems'])){ 
    foreach ($achievement['rewardItems'] as $item){ 
     echo "$item[name]<br/>".PHP_EOL; 
    } 
    } 
} 
+1

非常感謝!這完美的作品! – Hertus