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应该可以解决阵列问题。另外--答案现在只显示正确的字母(而不是答案)。我不确定为什么第一个问题会出现在问题列表的末尾。我看不到你截图中问题的底部。第一个问题完全遗漏了吗?或者它会出现在最后吗?很抱歉回答你晚了。我在选项中得到错误警告:内爆():传入的参数无效。如何生成答案键?我想你没有读到我的问题。如何生成答案键?我想你读到我的问题了。