2011-08-25 100 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