这就是你要做的:
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
我已经调整了接受的答案并将其转换为一个可以执行第 n 个数组并包含数组的键的函数。
function LoopThrough($array) {
foreach($array as $key => $val) {
if (is_array($key))
LoopThrough($key);
else
echo "{$key} - {$val} <br>";
}
}
LoopThrough($_POST);
希望它对某人有帮助。
您可以使用 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";
});
由于某种原因,我使用发布的答案丢失了索引名称。因此我不得不像这样循环它们:
foreach($_POST as $i => $stuff) {
var_dump($i);
var_dump($stuff);
echo "<br>";
}