0

我使用rand来自 php。下面的脚本运行完美,但我的问题是优先考虑数组中的一个值(显示多次)。例如它随机显示值的 100 次,是否可以使其 0 到 99 次回显 dofollow和 1 次显示nofollow使用rand

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

任何建议都会很棒。

4

3 回答 3

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。

于 2013-07-17T13:12:00.523 回答
1

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

或者生成一个介于 1 和 100 之间的随机数,使用计数器循环,如果计数器等于随机数输出“b”,否则为“a”。

于 2013-07-17T13:13:35.280 回答
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];
    }
?>
于 2013-07-17T13:25:27.577 回答