带条件的随机整数

时间:2012-05-03 20:40:46

标签: php random

我有一个PHP脚本,其中我有一个整数数组,让我们说$forbidden

我想获得1到400之间的随机整数,该整数不在$forbidden

当然,我不希望任何循环在rand给出工作结果时中断。我想要更有效的东西。

你是怎么做到的?

2 个答案:

答案 0 :(得分:10)

将所有禁止的数字放在数组中,并使用array_diff中的range(1,400)。您将获得一系列允许的数字,随机选择array_rand()

<?php

$forbidden = array(2, 3, 6, 8);
$complete = range(1,10);
$allowed = array_diff($complete, $forbidden);

echo $allowed[array_rand($allowed)];

这样您就可以从选择集中删除排除的数字,并且无需循环:)

答案 1 :(得分:0)

生成允许数字的数组。找出这个数组中的数字。随机选择其中一个。