如何随机显示 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 方法选择一组唯一的随机数(不重复)?

如何打乱一组 UIViews

Android如何在一个界面里布局4个按钮 分为2行2列 与屏幕上下、水平居中对齐

MATLAB中,怎样把一组给定的数据随机排列?

一个java问题,随机输入一组数字,从小到大排列,然后表示它是第几次输入的数字(问题在这),真心求助。

在 UIbutton 中分配随机标题