我有一个 PHP 脚本,其中有一个整数数组,比如说$forbidden
.
我想得到一个从 1 到 400 的随机整数,它不在$forbidden
.
当然,我不希望任何循环在 rand 给出工作结果时中断。我想要更有效的东西。
你怎么做到这一点 ?
将所有禁止的数字放在一个数组中,并使用array_diff
from 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)];
这样,您就可以从选择集中删除排除的数字,并消除循环的需要:)
产生一个允许数字的数组。找出这个数组中的数字。随机选择其中之一。