3

尝试将每个问题的所有不正确答案显示到表格中,但出于某种奇怪的原因,我在其中一行中收到了一个空答案。现在这只发生在问题 2 中,问题 2 是唯一有多个正确答案的问题,所以我相信我遇到的问题是我没有$row_count正确设置,但我的问题是如何正确设置才能显示缺少答案是D什么?看问题的 php fiddle 在这里http://phpfiddle.org/main/code/get-rps

下面的代码为包含多个正确答案的问题设置错误答案的行数如下:

 <?php
        //remaining incorrect answers in separate row (if any) follows here
    if($row_count < $q_row_span - 1) 
    {
        for($i=($row_count + 1); $i<$q_row_span; $i++) { ?>     
            <tr>
               <td class="answertd"><?php echo$inc_ans[$i];?>
                  <input type="hidden" id="hiddenincorrect" name="incorrect[]" value="<?php echo$inc_ans[$i];?>">
               </td>

               <td class="answermarkstd">
                  <input class="individualMarks q<?php echo$questionNo?>_mark"  q_group="1" name="answerMarks[]" type="text" data-type="qmark" data-qnum="<?php echo$questionNo?>" onkeypress="return isNumberKey(event)" maxlength="3" />
               </td>
            </tr>
    <?php
    }
4

1 回答 1

0

该错误是由于您$ques_ans使用 for() 迭代的数组在键中存在间隙。

var_dump($ques_ans)给我们:

array(3) {
  ... skipped for brevity
  [2]=>
  array(2) {
    [0]=>
    string(1) "B"
    [2]=>
    string(1) "D"
  }
  ... skipped for brevity
}

没有带有 key 的元素[1]。这是因为array_intersect您在第 49 行使用的函数保留了键。

array_values()我在第 51 行添加了快速修复您的代码以使其正常工作的方法:

$ques_ans[$questionNo] = array_values($q_incorrect_ans);    //store the array of incorrect ans against the ques no as key

尽管这对您的应用程序逻辑可能没有意义。我只是没有潜入其中。所以检查一下。

于 2013-01-14T08:50:37.487 回答