Мне нужно пройти через массив сообщений и пропустить его.
#stuff 1 <input type="text" id="stuff" name="stuff[]" /> <input type="text" id="more_stuff" name="more_stuff[]" /> #stuff 2 <input type="text" id="stuff" name="stuff[]" /> <input type="text" id="more_stuff" name="more_stuff[]" />
Но я не знаю, с чего начать.
Вот как вы это сделаете:
foreach( $_POST as $stuff ) { if( is_array( $stuff ) ) { foreach( $stuff as $thing ) { echo $thing; } } else { echo $stuff; } }
Это заставляет и переменные, и массивы передаваться в $_POST
.
Вероятно, вам также понадобятся значения каждого элемента формы, такие как значение, выбранное из раскрывающегося списка или флажка.
foreach( $_POST as $stuff => $val ) { if( is_array( $stuff ) ) { foreach( $stuff as $thing) { echo $thing; } } else { echo $stuff; echo $val; }
}
for ($i = 0; $i < count($_POST['NAME']); $i++) { echo $_POST['NAME'][$i]; }
Или
foreach ($_POST['NAME'] as $value) { echo $value; }
Замените NAME
именем элемента, например, stuff
или more_stuff
Вы можете использовать функцию array_walk_recursive и анонимную функцию, например:
$sweet = array('a' => 'apple', 'b' => 'banana'); $fruits = array('sweet' => $sweet, 'sour' => 'lemon'); array_walk_recursive($fruits,function ($item, $key){ echo "$key holds $item <br/>\n"; });
следует этой версии ответа:
array_walk_recursive($_POST,function ($item, $key){ echo "$key holds $item <br/>\n"; });