2017-08-29 21 views
1

這可能是重複的,但我無法找到看起來a topics的主題的anwser。如何通過循環遍歷並打印出多維數組中的具體值

我有一個數組,巫婆是這樣的:

$itemx= 
[ 
    'Weapons'=>[ 
      'Sword'=> [ 
      'Name' => 'Lurker', 
      'Value' => '12', 
      'Made' => 'Acient' 
      ], 

      'Shield'=> [ 
       'Name' => 'Obi', 
       'Value' => '22', 
       'Made' => 'Acient' 
      ], 

      'Warhammer'=> [ 
       'Name' => 'Clotch', 
       'Value' => '124', 
       'Made' => 'Acient' 
      ] 
    ], 
    'Drinks'=>[ 
     'Water'=> [ 
      'Name' => 'Clean-water', 
      'Value' => '1', 
      'Made' => 'Acient' 
     ], 

     'Wine'=> [ 
      'Name' => 'Soff', 
      'Value' => '5', 
      'Made' => 'Acient' 
     ], 

     'Vodka'=> [ 
      'Name' => 'Laudur', 
      'Value' => '7', 
      'Made' => 'Acient' 
      ] 
    ] 


]; 

我想呼應了項目類別(武器,飲料),類型(劍,水等),他們持有什麼。

我試着只是一個普通的foreach,所以他們回聲數組。

function getAllCategories() 
    { 
    foreach ($this->_prop as $cate) 
    { 
     echo $cate; 
     foreach ($cate as $type) 
     { 
     echo $type; 
     } 

    } 
    } 

所以我想我可以從數組中選擇。

function getAllCategories() 
    { 
    foreach ($this->_prop as $cate) 
    { 
     echo $cate[0]; 
     foreach ($cate as $type) 
     { 
     echo $type[0]; 
     } 

    } 
    } 

但他們沒有任何迴音,我不明白我怎麼能打印出我想要的那些值。

+0

而不是echo嘗試使用print_r進行調試以查看陣列中實際存在的內容。 – Gaur93

回答

2

你需要在每個foreach()獲得兩個索引和值(如數組),這樣你就可以保持「通過維度」將在:

function getAllCategories() 
{ 
    foreach ($this->_prop as $cate => $items) 
    { 
    echo $cate."<br>"; 
    foreach ($items as $type => $values) 
    { 
     echo $type."<br>"; 
    } 

    echo "<br>"; 
    } 
} 

/* result 
Weapons 
Sword 
Shield 
Warhammer 

Drinks 
Water 
Wine 
Vodka 
*/ 

現在,在第一級,$cate是每個元素的索引,而$items是包含下一級的數組。

然後$values是一個數組的最後一層。如果添加更多關卡,您可以繼續以相同的方式進行。

相關問題