Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用PHP创建测验?_Php_Html - Fatal编程技术网

如何使用PHP创建测验?

如何使用PHP创建测验?,php,html,Php,Html,当我执行代码以获取在php测验中显示问题和答案的字符串时,会出现一些错误。 com/ZCy6G.jpg您看到的错误与数组到字符串的转换有关,这是由此行引起的: echo $key . " : " . $value . "<br>"; echo$key。" : " . $价值“”; 如果在该循环中使用var_dump($value),您将看到$value有时是数组,而不是字符串。您可以像这样迭代$value数组中的值: foreach($quizHistoryQ[$keys[$i]

当我执行代码以获取在php测验中显示问题和答案的字符串时,会出现一些错误。
com/ZCy6G.jpg

您看到的错误与数组到字符串的转换有关,这是由此行引起的:

echo $key . " : " . $value . "<br>";
echo$key。" : " . $价值“
”;
如果在该循环中使用var_dump($value),您将看到$value有时是数组,而不是字符串。您可以像这样迭代$value数组中的值:

foreach($quizHistoryQ[$keys[$i]] as $key => $value) {
    echo $key . " : ";
    //note:  in OP's specific example, only is_array test is needed.  is_object test can be omitted in this case since we know $value will never be an object
    if (is_array($value) || is_object($value)) {
        foreach($value as $item) {
            echo $item . '<br />';
        }
    } else {
        echo $value . '<br />';
    }
}
foreach($quizHistoryQ[$keys[$i]]作为$key=>$value){
echo$key.“:”;
//注意:在OP的特定示例中,只需要is_数组测试。在这种情况下,is_对象测试可以省略,因为我们知道$value永远不会是对象
if(is_数组($value)| is_对象($value)){
foreach(价值为$item){
回显$item.“
”; } }否则{ 回显$value.“
”; } }

这将测试$value是数组还是字符串。如果它是一个数组,它会在其中循环。否则,它只是回显字符串。

我当前版本的php不支持数组文本构造函数的javascript样式,因此我必须使用原始样式。下面的代码具有最小的样式,但似乎正确地输出了问题和选项

<html>
    <head>
        <title>quiz</title>
        <style>
            form{ display:block; float:none; width:90%;margin:1rem auto;box-sizing:content-box;padding:1rem;border:1px solid black; }
            ul{}
            li{}
            h3{margin:2remauto 1rem auto;}
        </style>
    </head>
    <body>
    <?php
        $quizHistoryQ = array(
            "Q1" => array(
                "question"=>"This is the First question",
                "options" => array(
                    "this is option 1",
                    "this is option 2",
                    "this is option 3"
                ),
                "answer" =>2
            ),

           "q2" => array(
                "question"=>"This is the Question String for question 2",
                "options" => array(
                    "this is option A",
                    "this is option B",
                    "this is option C"),
                "answer" =>1
            ),

            "q3" =>array(
            "question"=>"This is the Question String for question 3",
            "options" => array(
                "this is option X",
                "this is option Y",
                "this is option Z"
            ),
            "answer" =>0
            )
        );



        echo "
        <form name='quiz' method='post'>";

        foreach( $quizHistoryQ as $index => $arr ){

            $question=$arr['question'];
            $options=$arr['options'];
            $answer=$arr['answer']; 

            echo '<h3>Question: '.$index.': '.$question.'</h3>';
            echo '<ul>';
            foreach( $options as $i => $option ) echo "<li><input type='radio' name='{$index}[]' value='{$i}'/>{$option}";
            echo '</ul>';
        }

        echo "
            <input type='submit' name='sub' value='Submit'/>
        </form>";

    ?>
    </body>
</html>

测验
表单{显示:块;浮动:无;宽度:90%;边距:1rem自动;框大小:内容框;填充:1rem;边框:1px纯黑色;}
ul{}
li{}
h3{边距:2remauto 1rem auto;}

了解您收到的错误会很有帮助……那么,您想要什么呢?您应该考虑接受答案,以表明问题已经解决