[英]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.