Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何从数组中随机抽取示例,将它们洗牌,并将它们放入一个新数组中,以列表的形式进行格式化_Php_Arrays_List_For Loop - Fatal编程技术网

Php 如何从数组中随机抽取示例,将它们洗牌,并将它们放入一个新数组中,以列表的形式进行格式化

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

在一个例子中,我没有意识到我自己无法添加其余的更改,所以这里是我正在处理的。用户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 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来证明这一点,给我一点时间。