php中的随机值

时间:2013-07-17 13:07:21

标签: php arrays random

我使用php的rand。下面的脚本工作正常,但我的问题是为数组中的一个值赋予优先级(显示多次)。例如100次随机显示值,是否可以使用dofollow回显0到99次,并使用nofollow显示rand 1次

<?php
$input_nofollow = array("nofollow", "dofollow");
        $random = rand(0, 1);
        echo $input_nofollow[$random];
?>

任何建议都会很棒。

3 个答案:

答案 0 :(得分:3)

$random = rand(0, 100);
$selected_key = 0;
if($random < 90) $selected_key = 1;
else $selected_key = 0;

echo $input_nofollow[$selected_key];

这使您有90%的机会获得索引1.

答案 1 :(得分:1)

听起来你正在寻找 shuffle ,而不是随机生成器。创建一个包含99“a”和一个“b”的数组,shuffle,按顺序输出。

或者,如果计数器等于随机数输出“b”,则生成1到100之间的随机数,带有计数器的循环,否则为“a”。

答案 2 :(得分:1)

尝试类似这样的事情:

<?php
    $input_nofollow = array("nofollow", "dofollow");

    $random = rand(0, 100);
    $i = 0;
    while (1 /* Your Condition */ )
        if (++$i > 100) {
            $i = 0;
            $random = rand(0, 100);
        }

        if ($i == $random)
            echo $input_nofollow[0];
        else
            echo $input_nofollow[1];
    }
?>