[英]using foreach with a multi-dimensional array
目前,我从输入中构造了一个多维数组。 像这样:(示例)
<form method=post action="testing.php">
<input name="response[0]['id']" type="hidden" value="<? echo $q1; ?>">
<input name="response[0]['answer']" type=text value=''>
<input name="response[1]['id']" type="hidden" value="<? echo $q2; ?>">
<input name="response[1]['answer']" type=text value=''>
<input name="response[2]['id']" type="hidden" value="<? echo $q3; ?>">
<input name="response[2]['answer']" type=text value=''>
<input name="response[3]['id']" type="hidden" value="<? echo $q4; ?>">
<input name="response[3]['answer']" type=text value=''>
<input type="submit" value="submit">
</form>
这样就可以成功发布。 但是,我试图使用一个foreach打印出值,但我弄错了。
编辑我的输出数组:
Array (
[0] => Array
(
['id'] => q1
['answer'] => 1
)
[1] => Array
(
['id'] => q2
['answer'] => 2
)
[2] => Array
(
['id'] => q3
['answer'] => 3
)
[3] => Array
(
['id'] => q4
['answer'] => 4
)
)
有人可以解释我如何用foreach甚至更好的方法提取值吗?
非常感谢
foreach ($_POST['response'] as $response) {
echo $response['id'];
echo $response['answer'];
}
这应该做。
这是您要做什么?
<?php foreach($response as $entry): ?>
<input name="<?php echo $entry['id']; ?>" />
<input name="<?php echo $entry['answer']; ?>" />
<?php endforeach; ?>
当然可以像上面那样构造输入
编辑
注意,撇号( '
)是名称的一部分! 更改HTML( response[0][id]
)或执行以下操作。
传入数组应如下所示:
$response = array(
0 => array("'id'" => ..., "'answer'" => ...),
1 => array("'id'" => ..., "'answer'" => ...),
2 => array("'id'" => ..., "'answer'" => ...),
3 => array("'id'" => ..., "'answer'" => ...),
);
从而,
foreach ($response as $resp) {
print 'ID=' . $resp["'id'"] . ', answer=' . $resp["'answer'"];
}
问题: <input name="response[0]['answer']" />
将产生一个以'answer'
为键的数组。 即, 带撇号的文字字符串,不只是answer
。 您可能应该将HTML更改为<input name="response[0][answer]" />
以避免混淆。
我将尝试看看这是否已记录为行为。
docs中指示了此行为。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.