php foreach проблема многомерного массива - PullRequest
0 голосов
/ 25 августа 2011

Я использую многомерный массив в цикле 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 ]

3 голосов
/ 25 августа 2011

Поскольку ваш код, который добавляется к $body, обращается к индексам $value, ваш исходный код был эффективно написан для работы с трехуровневым массивом.

Если ваш массив структурирован так, как вы разместили, вам не нужен внутренний цикл foreach.

foreach($mainarray as $fieldarray) {    
    $body .= $fieldarray['email_label'].' - '. $fieldarray['field_name']; 
}
1 голос
/ 25 августа 2011

Для этого вам нужен только один цикл:

foreach($mainarray as $fieldarray){
    $body .= $fieldarray['email_label'].' - '. $fieldarray['field_name']; 
}
0 голосов
/ 25 августа 2011

Попробуйте использовать

foreach($mainarray as $fieldarray){
    $body .= $fieldarray['email_label'].' - '. $fieldarray['field_name']; 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...