1

对 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_arrayon你已经通过几个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

有什么想法吗?请帮助一个新手!

4

0 回答 0