如何随机显示 4 个段落(一组 21 个)? [关闭]
Posted
技术标签:
【中文标题】如何随机显示 4 个段落(一组 21 个)? [关闭]【英文标题】:How to randomly display 4 paragraphs (out of a set of 21)? [closed] 【发布时间】:2013-10-17 03:01:07 【问题描述】:我的网站上有一个常见问题解答页面,我想在其他一些页面上包含一个迷你版。 常见问题解答包括 21 个问题和答案,我需要一种方法,在 php 中,它可以随机选择其中 4 个 QA 以在每次页面加载时显示。
我根据这篇文章查看了如何使用 switch():http://php.about.com/od/finishedphp1/p/random_quote.htm,但我需要一些更复杂的东西,因为我不希望每次显示的 4 中都有任何重复项。最后一件事,它随机提取的文本将包含 html,而不仅仅是原始文本。
我非常感谢任何帮助。谢谢。
例子:
我使用示例文本来说明我的意思:
<?
//Chooses a random number
$num = Rand (1,2);
//Based on the random number, gives a quote
switch ($num)
case 1:
echo "What does such and such mean?<br>It means this and that.";
break;
case 2:
echo "How does this and that work?<br>It works via such and such.";
break;
?>
但这只会随机显示 1 每次。我希望随机显示 4 个,但 4 个都不重复,因此我不只是复制和粘贴上面的代码 4 次。
【问题讨论】:
this, this.... 上面有一个搜索字段。 【参考方案1】:将每个段落加载到数组元素中。 Shuffle数组,然后输出前4个。
【讨论】:
【参考方案2】:获取每个段落并将其添加到数组中。 从数组中选择并删除一个随机条目(随机 0 到 array.length)
一旦您选择它,请务必从数组中删除它。
再重复选择和删除步骤 3 次,您将得到与原始段落集没有重复的段落。
注意:在效率方面,最好将段落编号之类的内容放入数组中并选择它们,然后将段落编号转换回原始段落。
【讨论】:
以上是关于如何随机显示 4 个段落(一组 21 个)? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 jQuery.inArray 方法选择一组唯一的随机数(不重复)?
Android如何在一个界面里布局4个按钮 分为2行2列 与屏幕上下、水平居中对齐