Php 使用foreach循环检查复选框答案

Php 使用foreach循环检查复选框答案,php,arrays,checkbox,foreach,Php,Arrays,Checkbox,Foreach,目前,我在数据库中有一个名为answer的列,用于存储提交表单的所有答案。目前,表单本身有一个“保存”按钮,如果用户不能在某个时间点自由完成表单,则可以通过该按钮保存表单。保存表单时,所有答案都将插入数据库 现在我的问题是,如果问题本身有“1,2,3,4,5”选项,我的复选框输入答案将作为示例“1,2,3”插入。因此,我使用foreach循环将数据分离出来,并使用if/else语句检查数据是否相同,标记为tick。但问题的形式最终是这样的 x 1 2 x 2 3 3 x 3 4

目前,我在数据库中有一个名为answer的列,用于存储提交表单的所有答案。目前,表单本身有一个“保存”按钮,如果用户不能在某个时间点自由完成表单,则可以通过该按钮保存表单。保存表单时,所有答案都将插入数据库

现在我的问题是,如果问题本身有“1,2,3,4,5”选项,我的复选框输入答案将作为示例“1,2,3”插入。因此,我使用foreach循环将数据分离出来,并使用if/else语句检查数据是否相同,标记为tick。但问题的形式最终是这样的

x 1
  2
x 2
  3
  3
x 3
  4
  4
  4
  5
  5
  5
我想要的输出是:

x 1
x 2
x 3
  4
  5 
用于打印复选框的代码如下所示:

第一个foreach是问题的选项,例如“1,2,3,4,5”

第二个foreach是用户在保存表单后选择的答案,例如“1,2,3”

foreach($arr as$row=>$name){
$arr=$name;
如果($input==“多选(多个答案)[复选框]”){
foreach($arrAns作为$value){
如果($arr==$values){?>

首先,直截了当地说出你的foreach。我真的相信你的复选框应该在你的外部foreach上完成,并且只有
选中的
属性应该在内部foreach中处理(除了使用
if(在数组中('foo',$array))
作为内部foreach)。我真的不喜欢
$input=='多选(多个答案)[复选框]“
作为if语句。为了您自身的安全,请拆分显示的文本和逻辑内容。另外,什么是
$input
,为什么要在
foreach
中检查它(即,在循环的每次迭代开始时)如果在循环过程中其值从未更改?$input只是让我根据用户选择的输入内容(如单选按钮、复选框等)打印出问题。
foreach ($arr as $row => $name) {
                        $arr = $name;    
if ($input == 'Multiple choice (multiple answers) [Check box]') {
                                 foreach ($arrAns as $values) {
                            if ($arr == $values) {  ?>
                                <input type="checkbox" name="<?php echo 'qns' . $qID; ?>[]" value="<?php echo $arr; ?>" class="required" checked/> <?php echo $arr; ?><br/>
                            <?php break; } else { ?>
                                <input type="checkbox" name="<?php echo 'qns' . $qID; ?>[]" value="<?php echo $arr; ?>" class="required"/> <?php echo $arr; ?><br/>
                                <?php
                            } } } } ?>