从已发布的表单显示多维数组

时间:2012-12-04 21:30:44

标签: php forms multidimensional-array

您好我正在尝试显示表单中的信息,问题的数量和选择的数量是由用户动态生成的。表格如下:

<input name='questions[]' type='text' value='question 1' /><br/>
   <input name='choice[1-1][]' type='text' value='option 1' /><br/>
   <input name='choice[1-1][]' type='text' value='option 2' /><br/>
   <input name='choice[1-1][]' type='text' value='option 3' /><br/>
<input name='questions[]' type='text' value='question 2' /><br/>
   <input name='choice[2-1][]' type='text' value='option 1' /><br/>
   <input name='choice[2-1][]' type='text' value='option 2' /><br/>
   <input name='choice[2-1][]' type='text' value='option 3' /><br/>

等...

创建代码以生成表单没有问题,我的问题在于显示用户放入表单的信息。

到目前为止,我已尝试使用foreach循环显示问题,然后使用另一个foreach循环来显示选项。我还尝试使用count()然后使用for循环来计算选择的数量并以这种方式输出它们,但没有成功。

我的问题是,当我尝试显示选项时,它们会在显示下一个问题之前显示,然后在脚本移动到下一个问题之前再次显示所有选项,依此类推。

1 个答案:

答案 0 :(得分:0)

您的预期结果不是很清楚,但这里有一个我认为您想要做的事情的想法。

$i=1;
foreach ($questions as $question){
echo $question;
echo "<br />";
foreach($choice[$i.'-1'] as $choices){
echo '-'.$choices.'<br />';
}
echo "<br />";
$i++;
}

基于您的<form>代码,在发布时,您将拥有像

这样的数组
$questions = array('question 1', 'question 2');
$choice['1-1']= array('option 1','option 2','option 3');
$choice['2-1']= array('option 1','option 2','option 3');

因此,在这些数组上使用foreach,您将得到 -

的输出
question 1
-option 1
-option 2
-option 3

question 2
-option 1
-option 2
-option 3

你可以在 - http://phpfiddle.org/main/code/i4f-k7w

看到一个phpfiddle