PHP如何循环一个post数组

时间:2012-04-21 20:33:23

标签: php post

我需要遍历一个post数组并提交它。

#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[]" />

但我不知道从哪里开始。

6 个答案:

答案 0 :(得分:33)

这就是你要做的:

foreach( $_POST as $stuff ) {
    if( is_array( $stuff ) ) {
        foreach( $stuff as $thing ) {
            echo $thing;
        }
    } else {
        echo $stuff;
    }
}

这样可以查看$_POST中传递的变量和数组。

答案 1 :(得分:20)

可能,您还需要每个表单元素的值,例如从下拉列表或复选框中选择的值。

foreach( $_POST as $stuff => $val ) {
if( is_array( $stuff ) ) {
    foreach( $stuff as $thing) {
        echo $thing;
    }
} else {
    echo $stuff;
    echo $val;
}

}

答案 2 :(得分:6)

for ($i = 0; $i < count($_POST['NAME']); $i++)
{
   echo $_POST['NAME'][$i];
}

或者

foreach ($_POST['NAME'] as $value)
{
    echo $value;
}

NAME替换为元素名称,例如stuffmore_stuff

答案 3 :(得分:2)

您可以使用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";
});

答案 4 :(得分:1)

我已经调整了接受的答案,并将其转换为可以处理第n个数组并包含数组键的函数。

function LoopThrough($array) {
    foreach($array as $key => $val) {
        if (is_array($key))
            LoopThrough($key);
        else 
            echo "{$key} - {$val} <br>";
    }
}

LoopThrough($_POST);

希望它可以帮助某人。

答案 5 :(得分:0)

出于某种原因,我使用发布的答案丢失了我的索引名称。因此我不得不像这样循环它们:

foreach($_POST as $i => $stuff) {
  var_dump($i);
  var_dump($stuff);
  echo "<br>";
}