2013-01-13 24 views
4

試圖在每個問題的表格中顯示所有不正確的答案,但出於某種奇怪的原因,我在其中一行中收到空答案。現在這隻發生在問題2和問題2是唯一的問題有多個正確的答案,所以我相信我遇到的問題是我沒有正確設置$row_count,但我的問題是如何設置它能夠顯示能夠顯示缺少的答案是D? PHP的小提琴看問題是在這裏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 
     }` 

回答

0

錯誤造成通過使用for()在$ques_ans上迭代的數組在密鑰中有差距。

var_dump($ques_ans)給我們:

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

沒有與關鍵[1]沒有元素。這是因爲您在第49行使用的函數array_intersect保留了鍵。

要快速解決您的代碼只是爲了讓我不加array_values()工作失誤第51行:

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

雖然它可能是沒有意義的,你的應用程序邏輯。我只是沒有潛入。所以檢查一下。

+0

有沒有更好的方法來使用數組interset,以便不是爲具有多個答案的問題顯示多組數組,而是能夠只有一組數組並且刪除多個正確答案問題在一組。這是因爲我測試了你使用不同的問題和答案解決問題,甚至錯過了一個不正確的答案 – user1964964

相關問題