2016-06-24 6 views
0

У меня есть этот массивEcho из многомерного массива

[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

Смежные вопросы