Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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 - Fatal编程技术网

Php 如何在数组中存储数组的随机部分,然后作为列表打印?

Php 如何在数组中存储数组的随机部分,然后作为列表打印?,php,arrays,Php,Arrays,后续问题: 如何在数组中存储数组的随机部分,然后作为列表打印 我知道我的问题的两个部分已经有了答案,但我找到的两个答案并不一致。我正试图用PHP实现这一点,但如果绝对必要,我愿意使用另一种代码语言 到目前为止,我一直在尝试做一个简单的版本。我想将每个数组($mars、$jupiter和$earth)中的一个随机问题存储为另一个数组($all),然后将此数组重新格式化为一个列表,显示为html(使用和) 出于某种原因,第一个函数需要=>array(),但第二个函数不需要 这将从数组中生成格式化的h

后续问题:

如何在数组中存储数组的随机部分,然后作为列表打印

我知道我的问题的两个部分已经有了答案,但我找到的两个答案并不一致。我正试图用PHP实现这一点,但如果绝对必要,我愿意使用另一种代码语言

到目前为止,我一直在尝试做一个简单的版本。我想将每个数组($mars、$jupiter和$earth)中的一个随机问题存储为另一个数组($all),然后将此数组重新格式化为一个列表,显示为html(使用
  • 出于某种原因,第一个函数需要=>array(),但第二个函数不需要

    这将从数组中生成格式化的html样式列表(将$all替换为要格式化的数组)

    这将打印$all的格式化版本

    echo makeList ($all);
    
    这是从数组$marz中随机抽取两个问题并打印出来

    $marz = array ('How big is Mars?', 'How many moons does Mars have?', 'How far away is Mars?', 'What is the highest point on Mars?');
    $rand_keys = array_rand($marz, 2);
    echo $marz[$rand_keys[0]] . "\n";
    echo $marz[$rand_keys[1]] . "\n";
    
    在这里,我将这些结果存储在一个新的数组中,并以丑陋的数组形式打印出来作为校样

    $new = array ($marz[$rand_keys[0]], $marz[$rand_keys[1]]);
    print_r ($new);
    

    我不知道我是否得到了你所需要的,但是我发现你的代码非常混乱,所以我根据你的描述创建了我自己的函数,这里有修复的数组和所有东西

    $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?');
    
    $all = array($mars, $jupiter, $earth);
    
    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(‘地球有多大?’、‘地球有多少个卫星?’、‘地球有多远?’、‘地球上最高点是什么?’);
    $all=阵列($mars、$jupiter、$earth);
    函数createList($a)
    {
    回声“
      ”; foreach($a作为$array) { $questions=计数($array); $idquestion=rand(0,$questions-1); 回显“
    • ”$array[$idquestion]。“
    • ”; } 回声“
    ”; } createList(全部);
    问题出在哪里?您期望的输出是什么?你得到的结果是什么?地球离我们有多远?我希望从每个原始数组中的一个随机问题生成一个列表。webfix修复了我的问题。现在我明白了,你的函数正在返回字符串,所以你只需要将“echo”改为“$output.=”并在末尾写上“return$output”…然后告诉你它是否对你有帮助,谢谢,这正是我想要的。谢谢关于$output和echo你是怎么说的?它目前的工作情况与预期一致,那么这将起到什么作用呢?我会更改哪个echo?您会替换所有的echo…不同之处在于,现在,函数直接写入html,通过输出,它将创建字符串,您可以在几行代码后再次使用该字符串而无需更改。。。
    $new = array ($marz[$rand_keys[0]], $marz[$rand_keys[1]]);
    print_r ($new);
    
    $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?');
    
    $all = array($mars, $jupiter, $earth);
    
    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);