Php 随机化数据集的最快方法是什么?
对于多项选择题测验应用程序,我想用正确答案显示虚拟答案。但正确答案在每个不同的问题上处于不同的位置 这是我尝试过的,但似乎不起作用:Php 随机化数据集的最快方法是什么?,php,Php,对于多项选择题测验应用程序,我想用正确答案显示虚拟答案。但正确答案在每个不同的问题上处于不同的位置 这是我尝试过的,但似乎不起作用: if ($question->type == 1) { echo "<div id='dummy_answers'>"; //Show Dummy echo '<h3>Dummy Answers</h3
if ($question->type == 1)
{
echo "<div id='dummy_answers'>";
//Show Dummy
echo '<h3>Dummy Answers</h3>';
//Get Dummy Answers
$query = $this->test_model->getDummyAnswers($question->id);
$dummy_num = 1;
foreach ($query->result() as $row)
{
$rand_number = rand(1, 3);
if ($dummy_num == $rand_number)
{
$dummy_num = $rand_number + 2;
echo '<h4>Answer '.$dummy_num.'</h4>';
echo '<p>';
echo $row->option;
echo '</p>';
//Now echo the real answer
echo '<h4>Answer '.$rand_number.'</h4>';
echo '<p>';
echo $row->option;
echo '</p>'; //Get id's for each.echo $row->id;
}
else
{
echo '<h4>Answer '.$dummy_num.'</h4>';
echo '<p>';
echo $row->option;
echo '</p>';
$dummy_num++;
}
}
echo '</div>';
echo ' <hr/>';
}
?>
if($question->type==1)
{
回声“;
//表演假人
回应“虚假回答”;
//得到虚假的答案
$query=$this->test\u model->getDummyAnswers($question->id);
$dummy_num=1;
foreach($query->result()作为$row)
{
$rand_number=rand(1,3);
如果($dummy\u num==$rand\u number)
{
$dummy_num=$rand_number+2;
回显“应答”。$dummy_num.”;
回声“”;
echo$row->option;
回声“”;
//现在回应真正的答案
回显“回答”。$rand_编号。“;
回声“”;
echo$row->option;
echo“”;//获取每个行的id。echo$row->id;
}
其他的
{
回显“应答”。$dummy_num.”;
回声“”;
echo$row->option;
回声“”;
$dummy_num++;
}
}
回声';
回声“
”;
}
?>
将答案放在一个数组中以供使用
您可以将结果放入一个数组(1个正确,3个不正确),然后
洗牌
,然后输出它们
$answers = array();
array_push($answers, "answer1");
array_push($answers, "answer2");
array_push($answers, "answer3");
array_push($answers, "answer4");
shuffle($answers);
foreach ($answers as $answer) {
echo $answer;
}
你所需要做的就是把答案的键放在一个数组中,然后调用。大概是这样的:
$keys = array_keys($answers);
shuffle($keys);
for ($key in $keys) {
echo $answers[$key];
}
我建议将所有答案放入一个数组中,然后使用
shuffle()
函数将它们随机排列。洗牌后,只需使用循环迭代数组并构建标记。您应该使用。
在您的情况下,它将是:
if ($question->type == 1)
{
echo "<div id='dummy_answers'>";
//Show Dummy
echo '<h3>Dummy Answers</h3>';
//Get Dummy Answers
$query = $this->test_model->getDummyAnswers($question->id);
$answers=$query->result();
shuffle($answers);
foreach ($answers as $nr=>$row)
{
echo '<h4>Answer '.($nr+1).'</h4>';
echo '<p>';
echo $row->option;
echo '</p>';
}
echo '</div>';
echo ' <hr/>';
}
?>
if($question->type==1)
{
回声“;
//表演假人
回应“虚假回答”;
//得到虚假的答案
$query=$this->test\u model->getDummyAnswers($question->id);
$answers=$query->result();
洗牌(答案);
foreach($nr=>$row)
{
回应“回答”。($nr+1)。”;
回声“”;
echo$row->option;
回声“”;
}
回声';
回声“
”;
}
?>
我说“最快”,意思是“最好”。:)。,寻找最好的方式做事总是最好的。事实上,如果你开始寻找做事情的“最佳”方式,你实际上不会做任何事情——你会把所有的时间都浪费在寻找做事情的最佳方式上。事实上,最好的方法就是只为某些原因寻找一些东西。相反,从长远来看,寻找最好的方法既能节省时间,又能提高生产率。i、 e.使用版本控制(“最佳”方式)与不使用版本控制。。
if ($question->type == 1)
{
echo "<div id='dummy_answers'>";
//Show Dummy
echo '<h3>Dummy Answers</h3>';
//Get Dummy Answers
$query = $this->test_model->getDummyAnswers($question->id);
$answers=$query->result();
shuffle($answers);
foreach ($answers as $nr=>$row)
{
echo '<h4>Answer '.($nr+1).'</h4>';
echo '<p>';
echo $row->option;
echo '</p>';
}
echo '</div>';
echo ' <hr/>';
}
?>