我試圖通過使用for
循環而不是多個if
語句來創建代碼邏輯。創建使用for循環遍歷多個陣列的代碼邏輯
這是我用以前的if
語句代碼之前:
if (isset($_POST['answer1']))
{
if ($_POST['answer1'] === '1d')
{
print $correct[0];
}
elseif ($_POST['answer1'] === '1b')
{
print $incorrect[0];
}
elseif ($_POST['answer1'] ==='1c')
{
print $incorrect[0];
}
elseif ($_POST['answer1'] === '1a')
{
print $incorrect[0];
}
};
此代碼讓我檢查的答案和打印無論是$correct
或$incorrect
變量。我在這段代碼中遇到的問題是效率很低,因爲我最終不得不創建10個或更多的if
語句。
我想出了for
循環代碼的實體模型來說明:
$_SESSION["totalCorrect"] = 0;
if (!isset($_SESSION["totalCorrect"]))
{
$_SESSION["totalCorrect"] = 0;
}
else
{
$totalCorrect = $_SESSION["totalCorrect"];
}
$postAns = array($_POST['answer1'] as $ans1, $_POST['answer2'] as $ans2, $_POST['answer3'] as $ans3, $_POST['answer4'] as $ans4, $_POST['answer5'] as $ans5, $_POST['answer6'] as $ans6,
$_POST['answer7'] as $ans7, $_POST['answer8'] as $ans8, $_POST['answer9'] as $ans9, $_POST['answer10'] as $ans10);
for ($i = 0; $i < count($postAns); i++)
{
if ($i == $postAns[])
{
if ($postAns[] === 'answer')
{
print $correct[];
$_SESSION["totalCorrect"]++;
}
else()
{
print $incorrect[];
}
}
};
對於這個代碼,我有涉及三個數組,我通過,$postAns
,$correct
試圖週期,$incorrect
。當被調用時,$correct
和$incorrect
數組根據他們是否得到正確答案打印出文本。
因此,對於for
循環,我希望能夠遍歷$postAns
數組的每個值來檢查並查看它是哪個答案號以及它是否是正確答案。如果它是正確的,那麼代碼循環通過$correct
以獲得該答案編號的正確文本,並增加值totalCorrect
,該值存儲多少用戶正確。如果不正確,代碼將循環到$incorrect
以獲取該答案編號的正確文本。
我並不精通循環,所以任何見解/幫助將不勝感激。
編輯:包括表單提交代碼
<form action="staff_info.php" method="get" id="q1">
<fieldset>
<legend>Question 1</legend>
<input type="radio" name="answer1" value="1a" id="1a"><label for="1a"> A. </label>
<input type="radio" name="answer1" value="1b" id="1b"><label for="1b"> B. </label>
<input type="radio" name="answer1" value="1c" id="1c"><label for="1c"> C. </label>
<input type="radio" name="answer1" value="1d" id="1d"><label for="1d"> D. </label>
<input type="button" id="answer" class="button " title="abutton" value="ANSWER">
<a href="staff_q2.php" class="button " title="nbutton" style="float:right;" id="next">NEXT</a>
</fieldset>
嗨,對於遲到的回覆表示歉意,但是這段代碼與一些調整一起工作。我在if語句之外移動了$ responseIndex,因爲它輸出的是全部文本,而不是正確的文本,但是代碼的一般想法非常有用。 – Wolfrum