Php 如何从数组中随机抽取示例,将它们洗牌,并将它们放入一个新数组中,以列表的形式进行格式化
在一个例子中,我没有意识到我自己无法添加其余的更改,所以这里是我正在处理的。用户webfix帮助我实现了以下目标:Php 如何从数组中随机抽取示例,将它们洗牌,并将它们放入一个新数组中,以列表的形式进行格式化,php,arrays,list,for-loop,Php,Arrays,List,For Loop,在一个例子中,我没有意识到我自己无法添加其余的更改,所以这里是我正在处理的。用户webfix帮助我实现了以下目标: $mars = array ('How big is Mars?', 'How many moons does Mars have?', 'How far away is Mars?', 'What is the highest point on Mars?'); $jupiter = array ('How big is Jupiter?', 'How many moons do
$mars = array ('How big is Mars?', 'How many moons does Mars have?', 'How far away is Mars?', 'What is the highest point on Mars?');
$jupiter = array ('How big is Jupiter?', 'How many moons does Jupiter have?', 'How far away is Jupiter?', 'What is the highest point on Jupiter?');
$earth = array ('How big is Earth?', 'How many moons does Earth have?', 'How far away is Earth?', 'What is the highest point on Earth?');
$sun = array ('How big is the Sun?', 'How many moons does the Sun have?', 'How far away is the Sun?', 'What is the highest point on the Sun?');
$all = array($mars, $jupiter, $earth, $sun);
function createList($a)
{
echo "<ul>";
foreach ($a as $array)
{
$questions = count($array);
$idquestion = rand(0, $questions-1);
echo "<li>" . $array[$idquestion] . "</li>";
}
echo "</ul>";
}
createList($all);
$mars=array('mars有多大?'、'mars有多少个卫星?'、'mars有多远?'、'mars上的最高点是什么?');
$jupiter=array(‘木星有多大?’、‘木星有多少卫星?’、‘木星有多远?’、‘木星上的最高点是什么?’);
$earth=array(‘地球有多大?’、‘地球有多少个卫星?’、‘地球有多远?’、‘地球上最高点是什么?’);
$sun=array(‘太阳有多大?’、‘太阳有多少个卫星?’、‘太阳有多远?’、‘太阳上的最高点是什么?’);
$all=阵列($mars、$jupiter、$earth、$sun);
函数createList($a)
{
回声“”;
foreach($a作为$array)
{
$questions=计数($array);
$idquestion=rand(0,$questions-1);
回显“- ”$array[$idquestion]。“
- ”;
}
回声“
”;
}
createList(全部);
我现在想增加一个问题顺序的随机化,以及最多三个(或任何数字稍后更改)问题
目前,它将从每个问题中选择一个(火星、木星、地球、太阳),然后按顺序将其列入列表。我希望顺序是随机的,并且只选择其中三个
我尝试使用“shuffle($all)”,但这不起作用,也许我们可以使用类似“for($I=1;$I<4;$I++)”的命令,在选择三个后停止?谢谢。shuffle($all)
应该有用(对我有用),我不知道为什么不适合你。要选择三个,请执行以下操作:
$mars = array ('How big is Mars?', 'How many moons does Mars have?', 'How far away is Mars?', 'What is the highest point on Mars?');
$jupiter = array ('How big is Jupiter?', 'How many moons does Jupiter have?', 'How far away is Jupiter?', 'What is the highest point on Jupiter?');
$earth = array ('How big is Earth?', 'How many moons does Earth have?', 'How far away is Earth?', 'What is the highest point on Earth?');
$sun = array ('How big is the Sun?', 'How many moons does the Sun have?', 'How far away is the Sun?', 'What is the highest point on the Sun?');
$all = array($mars, $jupiter, $earth, $sun);
shuffle($all);
function createList($a)
{
echo "<ul>";
$count = 1;
foreach ($a as $array)
{
$questions = count($array);
$idquestion = rand(0, $questions-1);
echo "<li>" . $array[$idquestion] . "</li>";
if ($count++ >= 3) {
break;
}
}
echo "</ul>";
}
createList($all);
$mars=array('mars有多大?'、'mars有多少个卫星?'、'mars有多远?'、'mars上的最高点是什么?');
$jupiter=array(‘木星有多大?’、‘木星有多少卫星?’、‘木星有多远?’、‘木星上的最高点是什么?’);
$earth=array(‘地球有多大?’、‘地球有多少个卫星?’、‘地球有多远?’、‘地球上最高点是什么?’);
$sun=array(‘太阳有多大?’、‘太阳有多少个卫星?’、‘太阳有多远?’、‘太阳上的最高点是什么?’);
$all=阵列($mars、$jupiter、$earth、$sun);
洗牌(全部);
函数createList($a)
{
回声“”;
$count=1;
foreach($a作为$array)
{
$questions=计数($array);
$idquestion=rand(0,$questions-1);
回显“- ”$array[$idquestion]。“
- ”;
如果($count++>=3){
打破
}
}
回声“
”;
}
createList(全部);
break
提前终止循环
从上一个问题的答案开始,您似乎没有添加或更改任何内容。如果您确实做了什么,请告诉我们您尝试了什么(包括研究!)。我在互联网和stackoverflow上广泛搜索了数组的随机化。这些例子似乎不适用于这个函数。我尝试将shuffle($all)添加到程序中,但服务器忽略了这一点,我不知道为什么。我试图添加for循环,但作为一名编程新手,我并不真正理解所有东西是如何工作的,在阅读了这些东西之后,我理解了,但由于某种原因,我无法让它们使用我想要的代码。所有这些小问题对我来说都很有意义,但我不知道如何将它们组合在一起。你还是希望每个子数组中有一个问题,还是两个火星问题可以?我希望每个问题最多有一个,但总共只有三个。(所以随机选一个不会被选中)@Alex:搜索这个网站20秒后,我发现了。它显示了如何随机选择某个选项,然后删除该选项(这样它就不会再次被选中)。使用它,你应该能够构建你想要的东西。谢谢,但这只选择了前三个。这不是随机的,我运行了它,我得到了随机的问题。我想我得发帖子到IDEone.com来证明这一点,给我一点时间。