如何随机显示4段(一组21段)?

时间:2013-10-09 16:15:42

标签: php

我的网站上有一个FAQ页面,我想在其他一些页面上加入迷你版本。 FAQ包括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个中没有一个是重复的,因此为什么我不只是复制&amp;粘贴上述代码4次。

2 个答案:

答案 0 :(得分:2)

将每个段落加载到数组元素中。 Shuffle数组,然后输出第一个4。

答案 1 :(得分:1)

获取每个段落并将其添加到数组中。 从数组中选择并删除随机条目(random 0 to array.length)

选择后,请务必从阵列中删除该项目。

重复选择并删除第3步,您将从原始段落集中获得无重复集。

注意:从效率的角度来看,通过将段号等内容输入数组并选择它们可能会更好,然后将段落编号转换回原始段落。