繁体   English   中英

PHP:根据另一个先前的值(也是随机的)从数组中回显随机值

[英]PHP: Echo random value from array depending on another previous value, also random

我需要根据 array_rand() 的先前结果回显一系列四个字符串。 我有这个,到目前为止:

<?php

$titles = array('title1','title2','title3','title4');

$title1_words = array('word1','word2','word3','word4','word5','word6','word7');
$title2_words = array('word1','word2','word3','word4','word5','word6','word7');
$title3_words = array('word1','word2','word3','word4','word5','word6','word7');
$title4_words = array('word1','word2','word3','word4','word5','word6','word7');

$rand_title = array_rand($titles, 1);
echo $rand_title . "<br>";


//print 4 random words from one group
$rand_words = array_rand($title1_words, 4);
echo $title1_words[$rand_words[0]] . "<br>";
echo $title1_words[$rand_words[1]] . "<br>";
echo $title1_words[$rand_words[2]] . "<br>";
echo $title1_words[$rand_words[3]] . "<br>";

?>

我需要输出是这样的:

“标题 2

word2、word4、word5、word7”,这些单词实际上与主标题相关。

(单词因组而异。我只是使用相同的名称以使其更易于理解。)

每次刷新页面时,预计会回显不同的值。

// 编辑以进一步解释 //

当它刷新时,它应该回显另一个标题和与该标题相关的另一组 4 个单词。

PS:Srsly,为什么投反对票? 至少解释一下。

正如评论中所解释的,处理这个问题的最好方法是将你的单词存储在一个二维数组中,如下所示:

$words = array(
    'title1' => array('word1','word2','word3','word4','word5','word6','word7')),
    'title2' => array('word1','word2','word3','word4','word5','word6','word7')),
    'title3' => array('word1','word2','word3','word4','word5','word6','word7')),
    'title4' => array('word1','word2','word3','word4','word5','word6','word7')),
);

然后使用$words[$titles[$rand_title]]作为你的 words 子$words[$titles[$rand_title]]

但是,如果您不能(或绝对不想)使用二维数组,则始终可以使用可变变量

<?php

$titles = array('title1','title2','title3','title4');

$title1_words = array('word1','word2','word3','word4','word5','word6','word7');
$title2_words = array('word1','word2','word3','word4','word5','word6','word7');
$title3_words = array('word1','word2','word3','word4','word5','word6','word7');
$title4_words = array('word1','word2','word3','word4','word5','word6','word7');

$rand_title = array_rand($titles, 1);
echo $rand_title . "<br>";

$title = $titles[$rand_title]; // should be title2, for instance
$words_array = ${$title . '_words'}; // should be $title2_words, for instance

$rand_words = array_rand($words_array, 4);
echo $words_array[$rand_words[0]] . "<br>";
echo $words_array[$rand_words[1]] . "<br>";
echo $words_array[$rand_words[2]] . "<br>";
echo $words_array[$rand_words[3]] . "<br>";

?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM