【发布时间】:2017-10-16 13:03:52
【问题描述】:
我需要根据 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 个单词。
P.S.:Srsly,为什么投反对票?至少解释一下。
【问题讨论】:
-
以不同方式存储您的数据,问题几乎可以自行解决:
$data = ['title1' => ['word1', ...], ...]。 -
如果你有“编号”的变量名,那么你通常可以使用一个像样的数组让你的生活更轻松......将你的标题词数组重建为
$title_words = array( 'title1' => array('word1','word2','word3','word4','word5','word6','word7'), 'title2' => array('word1','word2','word3','word4','word5','word6','word7'), 'title3' => ('word1','word2','word3','word4','word5','word6','word7'), 'title4' => array('word1','word2','word3','word4','word5','word6','word7'), ); -
问题是……?我只是将您的代码复制粘贴到我的 PHP 中,它可以工作。纯粹主义者会建议修改(如多维数组),但它确实会输出你想要的。
-
@Nic 建议多维数组不是“纯粹”的建议,而是如何解决问题的建议。
-
只是指出他的代码确实有效。肯定是新手方法。