Php 选项和应答键的重新定位

Php 选项和应答键的重新定位,php,Php,我想为我的学生准备问题。学校的数据库里有问题。下表如下: | id | qcontent | o1 | o2 | o3 | |----|------------------------------------------------------------------------------|-----|------|-----| | 1 | Lore

我想为我的学生准备问题。学校的数据库里有问题。下表如下:

| id | qcontent                                                                     | o1  | o2   | o3  |
|----|------------------------------------------------------------------------------|-----|------|-----|
| 1  | Lorem Ipsum is simply dummy text of the printing and typesetting industry.   | ab  | ba   | ce  |
| 2  | Lorem Ipsum has been the industry's standard dummy text ever since the 1500s | ce  | sas  | de  |
| 3  | Contrary to popular belief, Lorem Ipsum is not simply random text.           | ase | sded | def |
正确答案是
o1
选项

<?php


foreach($employee as $element) {

    echo $element->id . ". question: " .$element->qcontent . "<br>";  
    echo "A) " .$element->o1. "<br>";  
    echo "B) " .$element->o2. "<br>";  
    echo "C) " .$element->o3. "<br>";   
    echo "D) " .$element->o4. "<br>";   
    echo "E) " .$element->o5. "<br>";  

}

echo "<hr>";
echo "Answers:";

foreach($employee as $element) {

    echo $element->id. " - " .$element->o1. "<br>"; 

}

我会将答案放入一个数组中,然后将其洗牌。然后,我会将正确答案存储在一个answer_键中,以便在最后输出

<?php


foreach($employee as $element) {
    echo $element->id . ". question: " .$element->qcontent . "<br>"; 

    // put answers in an array
    $answers[0] = $element->01; 
    $answers[1] = $element->02;
    $answers[2] = $element->03;
    $answers[3] = $element->04;
    $answers[4] = $element->05;

    // randomize answers
    shuffle($answers);
    echo "A) " .$answers[0]. "<br>";  
    echo "B) " .$answers[1]. "<br>";  
    echo "C) " .$answers[2]. "<br>";   
    echo "D) " .$answers[3]. "<br>";   
    echo "E) " .$answers[4]. "<br>";  

   // add answer to answer key
   $answer_key[$element->id] = array_slice(array('A', 'B', 'C', 'D', 'E'), array_search($element->01, $answers), 1);
}


echo "<hr>";
echo "Answers:";

foreach($employee as $element) {

    // Output the correct answers
    echo $element->id. " - " .implode(answer_key[$element->id]). "<br>"; 

}

我会将答案放入一个数组中,然后将其洗牌。然后,我会将正确答案存储在一个answer_键中,以便在最后输出

<?php


foreach($employee as $element) {
    echo $element->id . ". question: " .$element->qcontent . "<br>"; 

    // put answers in an array
    $answers[0] = $element->01; 
    $answers[1] = $element->02;
    $answers[2] = $element->03;
    $answers[3] = $element->04;
    $answers[4] = $element->05;

    // randomize answers
    shuffle($answers);
    echo "A) " .$answers[0]. "<br>";  
    echo "B) " .$answers[1]. "<br>";  
    echo "C) " .$answers[2]. "<br>";   
    echo "D) " .$answers[3]. "<br>";   
    echo "E) " .$answers[4]. "<br>";  

   // add answer to answer key
   $answer_key[$element->id] = array_slice(array('A', 'B', 'C', 'D', 'E'), array_search($element->01, $answers), 1);
}


echo "<hr>";
echo "Answers:";

foreach($employee as $element) {

    // Output the correct answers
    echo $element->id. " - " .implode(answer_key[$element->id]). "<br>"; 

}
使用
shuffle()
并将所有可能的名称列组成一个数组:

<?php
// make array of all possible keys
$keys = ['o1', 'o2', 'o3', 'o4', 'o5'];
foreach($employee as $element) {
    // convert object to array
    $element = (array)$element;

    // shuffle it
    shuffle($keys);

    echo $element['id'] . ". question: " .$element['qcontent'] . "<br>";

    echo "A) " .$element[$keys[0]] . "<br>";  
    echo "B) " .$element[$keys[1]] . "<br>";  
    echo "C) " .$element[$keys[2]] . "<br>";   
    echo "D) " .$element[$keys[3]] . "<br>";   
    echo "E) " .$element[$keys[4]] . "<br>";  

}

echo "<hr>";
echo "Answers:";

foreach($employee as $element) {
    echo $element->id. " - " .$element->o1. "<br>";
}
使用
shuffle()
并将所有可能的名称列组成一个数组:

<?php
// make array of all possible keys
$keys = ['o1', 'o2', 'o3', 'o4', 'o5'];
foreach($employee as $element) {
    // convert object to array
    $element = (array)$element;

    // shuffle it
    shuffle($keys);

    echo $element['id'] . ". question: " .$element['qcontent'] . "<br>";

    echo "A) " .$element[$keys[0]] . "<br>";  
    echo "B) " .$element[$keys[1]] . "<br>";  
    echo "C) " .$element[$keys[2]] . "<br>";   
    echo "D) " .$element[$keys[3]] . "<br>";   
    echo "E) " .$element[$keys[4]] . "<br>";  

}

echo "<hr>";
echo "Answers:";

foreach($employee as $element) {
    echo $element->id. " - " .$element->o1. "<br>";
}

将答案放入数组,然后循环数组并输出每个项目。将答案放入数组,然后循环数组并输出每个项目。请注意,如果员工共享相同的$element->id,它将覆盖。但我不确定您的表是如何设置的(例如,它们是否加入到员工表中,或者您的问答表中是否有其他员工行)。谢谢。第一个问题出现在页面底部,原因是什么?答案键中还显示“数组”-是否可以将问题的字母表而不是选项内容放在答案键中?例如,1-B,2-D应该可以解决阵列问题。另外--答案现在只显示正确的字母(而不是答案)。我不确定为什么第一个问题会出现在问题列表的末尾。我看不到你截图中问题的底部。第一个问题完全遗漏了吗?或者它会出现在最后吗?很抱歉回答你晚了。我在选项中得到错误
警告:内爆():传入的参数无效。请注意,如果员工共享相同的$element->id,它将被覆盖。但我不确定您的表是如何设置的(例如,它们是否加入到员工表中,或者您的问答表中是否有其他员工行)。谢谢。第一个问题出现在页面底部,原因是什么?答案键中还显示“数组”-是否可以将问题的字母表而不是选项内容放在答案键中?例如,1-B,2-D应该可以解决阵列问题。另外--答案现在只显示正确的字母(而不是答案)。我不确定为什么第一个问题会出现在问题列表的末尾。我看不到你截图中问题的底部。第一个问题完全遗漏了吗?或者它会出现在最后吗?很抱歉回答你晚了。我在选项中得到错误
警告:内爆():传入的参数无效。如何生成答案键?我想你没有读到我的问题。如何生成答案键?我想你读到我的问题了。