Php 如何在数组中存储数组的随机部分,然后作为列表打印?
后续问题: 如何在数组中存储数组的随机部分,然后作为列表打印 我知道我的问题的两个部分已经有了答案,但我找到的两个答案并不一致。我正试图用PHP实现这一点,但如果绝对必要,我愿意使用另一种代码语言 到目前为止,我一直在尝试做一个简单的版本。我想将每个数组($mars、$jupiter和$earth)中的一个随机问题存储为另一个数组($all),然后将此数组重新格式化为一个列表,显示为html(使用Php 如何在数组中存储数组的随机部分,然后作为列表打印?,php,arrays,Php,Arrays,后续问题: 如何在数组中存储数组的随机部分,然后作为列表打印 我知道我的问题的两个部分已经有了答案,但我找到的两个答案并不一致。我正试图用PHP实现这一点,但如果绝对必要,我愿意使用另一种代码语言 到目前为止,我一直在尝试做一个简单的版本。我想将每个数组($mars、$jupiter和$earth)中的一个随机问题存储为另一个数组($all),然后将此数组重新格式化为一个列表,显示为html(使用和) 出于某种原因,第一个函数需要=>array(),但第二个函数不需要 这将从数组中生成格式化的h
- 和
- )
出于某种原因,第一个函数需要=>array(),但第二个函数不需要
这将从数组中生成格式化的html样式列表(将$all替换为要格式化的数组)
这将打印$all的格式化版本
这是从数组$marz中随机抽取两个问题并打印出来echo makeList ($all);
在这里,我将这些结果存储在一个新的数组中,并以丑陋的数组形式打印出来作为校样$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);
问题出在哪里?您期望的输出是什么?你得到的结果是什么?地球离我们有多远?我希望从每个原始数组中的一个随机问题生成一个列表。webfix修复了我的问题。现在我明白了,你的函数正在返回字符串,所以你只需要将“echo”改为“$output.=”并在末尾写上“return$output”…然后告诉你它是否对你有帮助,谢谢,这正是我想要的。谢谢关于$output和echo你是怎么说的?它目前的工作情况与预期一致,那么这将起到什么作用呢?我会更改哪个echo?您会替换所有的echo…不同之处在于,现在,函数直接写入html,通过输出,它将创建字符串,您可以在几行代码后再次使用该字符串而无需更改。。。$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]。“
- ”; } 回声“
$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);