2011-08-25 99 views
0

我在foreach循環中使用多維數組,但我沒有得到正確的結果。PHP foreach多維數組問題

陣列

$mainarray = array( 

    array('field_name'  => 'xx', 
      'email_label'  => 'xxxx', 
      'validation_type' => 'xxxxx', 
      'validation_msg' => 'xxxxxx'), 

    array('field_name'  => 'xx', 
      'email_label'  => 'xxxx', 
      'validation_type' => 'xxxxx', 
      'validation_msg' => 'xxxxxx'), 

      // more .... 
} 

foreach循環

foreach($mainarray as $fieldarray){ 
    foreach($fieldarray as $key => $value){  
     $body .= $value['email_label'].' - '. $value['field_name']; 
    } 
} 

我需要的關鍵稱爲EMAIL_LABEL和FIELD_NAME的價值的,但我不得到正確​​的結果返回

回答

3

因爲你的代碼,追加到$body訪問索引$value,您的原始代碼被有效寫入三層數組上。

如果您的數組是按照您發佈的結構構建的,則不需要內部的foreach循環。

foreach($mainarray as $fieldarray) {  
    $body .= $fieldarray['email_label'].' - '. $fieldarray['field_name']; 
} 
+0

感謝您的幫助 – user759235

0

嘗試使用

foreach($mainarray as $fieldarray){ 
    $body .= $fieldarray['email_label'].' - '. $fieldarray['field_name']; 
} 
1

你只需要爲這一個循環:

foreach($mainarray as $fieldarray){ 
    $body .= $fieldarray['email_label'].' - '. $fieldarray['field_name']; 
} 
+0

感謝,這個作品! – user759235

+0

@ user759235很高興我能幫忙:)當你接受一個答案,雖然我建議接受John Flatness',因爲他比我用完全相同的代碼更快地回答,並且現在甚至增加了更多信息給他的答案,以幫助解釋爲什麼。 – Paulpro