据我所知,函数array_rand
将从数组中选择一个随机键。但是如果我需要返回所有随机化的密钥呢?
这是我的代码:
$answers=array("$q->answer_1", "$q->answer_2", "$q->answer_right");
$randKey=array_rand($answers,3);
echo $answers[$randKey[0]]."<br/>";
echo $answers[$randKey[1]]."<br/>";
echo $answers[$randKey[2]]."<br/>";
所以键的数量是3,我需要返回随机化的三个键。我该怎么做?
以我的例子来说,它不会随机化任何东西;它只显示
"$q->answer_1", "$q->answer_2", "$q->answer_right"
kingkero和ben的正确答案是
$answers=array("$q->answer_1", "$q->answer_2", "$q->answer_right");
$ranKey=shuffle($answers);
echo $answers[0]."<br />";
echo $answers[1]."<br />";
echo $answers[2]."<br />";
与其一次获得一个随机键,不如简单地按随机顺序排列原始数组。PHP提供了函数shuffle()
来实现这一点:
$answers = shuffle($answers);
foreach ($answers as $answer) {
echo $answer."<br/>";
}
您为每一个随机返回写3个项目,但您是所有3个项目的数组试试这个
$answers=array("$q->answer_1", "$q->answer_2", "$q->answer_right");
$randKey=array_rand($answers);
print_r($randKey);
或在阵列中添加更多项目
$answers=array("$q->answer_1", "$q->answer_2", "$q->answer_right", '0', '1', '2');
$randKey=array_rand($answers,3);
echo $answers[$randKey[0]]."<br/>";
echo $answers[$randKey[1]]."<br/>";
echo $answers[$randKey[2]]."<br/>";