【问题标题】:PHP: How to display random blocks of text from a multi-dimensional array? [duplicate]PHP:如何显示多维数组中的随机文本块? [复制]
【发布时间】:2015-07-31 22:16:26
【问题描述】:

我正在尝试显示块列表中的文本块。

我认为数组最有意义...

$quotes[] = array(
    'block'  => 'Luck is what happens when preparation meets Opportunity.',
    'author' => 'Seneca',
);
$quotes[] = array(
    'block'  => 'Quote number two.',
    'author' => 'Author Two',
);
$quotes[] = array(
    'block'  => 'Quote number three.',
    'author' => 'Author Three',
);

现在,如果我想列出引号,我会这样做:

foreach($quotes[] as $quote) {
    echo '<div><p>"<i>' . $quote['block'] . '</i>"<br />― ' . $quote['author'] . '</p></div>';
}

但我该如何随机列出其中一个引号呢?

我环顾四周,有些人在使用while loops

最终目标是,无论我将这段代码放在哪里,我都希望在我网站的不同部分显示随机引用,因此我不希望每个位置都出现相同的引用。

【问题讨论】:

  • shuffle($quotes);然后只需 $displayQuote = array_pop($quotes); 并显示那个.... shuffle(), array_pop()
  • echo $quotes[array_rand($quotes)];
  • 我认为您的意思是他应该将其放入答案中以便您接受。
  • 你必须存储随机选择的密钥然后使用它,像这样:$rand_key=array_rand($quotes); echo $quotes[$rand_key]['block']; echo $quotes[$rand_key]['author']; 替代:$picked =$quotes[array_rand($quotes)]; echo $picked['block']; $picked['author']
  • 一旦你选择了一个元素,你就有了一个数组,你可以像使用任何其他数组一样使用它。

标签: php foreach while-loop


【解决方案1】:

我相信这就像获取从 0 到 count($quotes) 的随机整数一样简单。

这可以像 this question 那样完成。

在你的情况下:

echo $quotes[rand(0, count($quotes) - 1)]['block'];

【讨论】:

  • 你没有访问$quotes的属性。
  • 真实故事,兄弟:0) 已编辑。
猜你喜欢
  • 2018-08-28
  • 1970-01-01
  • 2021-01-12
  • 2013-07-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-11
相关资源
最近更新 更多