繁体   English   中英

在多维数组中使用foreach

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM