构建表单输入的多维数组

时间:2011-05-07 15:05:36

标签: php arrays

PHP支持:

<input type=text name=array[]>

...并且所有值都只是在该数组中发布。我想为多维做同样的事情?数组,但是在尝试提取数据方面我有点迷失。

我有一组问题,大多数都有一个答案(单选按钮),但有些是多响应(复选框)。我希望能够将所有答案存储在一个多维数组中,因此它可能如下所示:

问题1 |回答|
问题2 |回答|
问题3 |回答|
问题3 |回答|
问题3 |回答|
问题4 |回答|

所以,我这样做:

<input name="response['q1'][]" type=text value=''>
<input name="response['q2'][]" type=text value=''>
<input name="response['q3'][]" type=text value=''>
<input name="response['q3'][]" type=text value=''>

现在我该如何提取这些数据以存储到我的mysql数据库中。我一直在玩一个foreach,但是在这种情况下,一个问题有多个答案(q3可以说)我无法在循环中获取这些数据。

1 个答案:

答案 0 :(得分:0)

尝试离开引号(name =“response [q3] []”)然后使用foreach($_POST['response']['q3'] as $key => $value) { echo $value."\n"; }

循环
foreach($_POST['response'] as $question => $answer) {
  if(count($answer) > 1) {
    foreach($answer as $key => $value) {
      //loop your multiple answers here
    }
  } elseif(count($answer) == 1 {
     // 1 answer found for $_POST['response'][ $question ];
  } else {
    // no answer found.. (perhaps $_POST['response'][ $key ] is a value and no array.
  }
}

我想这就是你要找的东西。