5

我有一个 PHP 脚本,其中有一个整数数组,比如说$forbidden.

我想得到一个从 1 到 400 的随机整数,它不在$forbidden.

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

你怎么做到这一点 ?

4

2 回答 2

10

将所有禁止的数字放在一个数组中,并使用array_difffrom 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)];

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

于 2012-05-03T20:46:07.650 回答
0

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

于 2012-05-03T20:50:20.940 回答