对 PHP 的总 n00b 但非常感兴趣。现在正在努力使用深度多维数组作为单一形式的 php 测验的一部分,其中多维数组必须包含测验中每个问题的选项和答案。
这是数组的第一部分,我特别关注:
$quizquestions = array ("question1" => array ("type" => "checkbox",
"text" => "question text goes here",
"options" => array ([1] => "option 1 goes here",
[2] => "option 2 goes here",
[3] => "option 3 goes here",
[4] => "options 4 goes here",
[5] => "option 5 goes here",
[6] => "option 6 goes here"
), //end of options array
"answers" => array ([1] => " right answer one here",
[3] => "right answer 2",
[6] => "right answer 3 here"
), //end of answers array
"feedback" => "text that is returned after user answers"
), //end of question 1 array... question 2 begins, etc...
在上面的示例中,问题 1 是一个复选框,有 3 个可能的答案被认为是正确的(1、3 和 6)。我一直在尝试嵌套的 foreach 循环来获取我的问题的选项,但似乎无法正确使用语法,或者弄清楚我需要使用什么函数来评估答案数组 - 你可以使用in_array
on你已经通过几个foreach
陈述喂养了一些东西;在多维数组上?
我一直希望在列表中打印出响应,在用户提交的响应旁边带有检查或 X,具体取决于它们是否在 answers 数组中。
这是我到目前为止一直在尝试的,但它没有返回任何东西。我已经尝试了一百万种变化,但可能只是在错误的轨道上......
foreach ($quizquestions as $question => $description) {
foreach ($description as $option => $response) {
if (in_array($option, $response['question1']['answers'])) {
print "<li class='correct'>$options</li><br />\n";
$score++;
} else {
print "<li class='incorrect'>$options</li><br />\n";
} //end of if(in_array() )
} //end of description foreach
} //end of quizquestion foreach
有什么想法吗?请帮助一个新手!