我有一个 PHP 脚本,其中有一个整数数组,比方说 $forbidden
。
我想得到一个 1 到 400 之间的随机整数,它不在 $forbidden
中。
当然,我不希望任何在 rand 给出工作结果时中断的循环。我想要更有效的东西。
你是怎么做到的?
最佳答案
将所有禁止的数字放在一个数组中,并使用 range(1,400)
中的 array_diff
。您将获得一组允许的数字,使用 array_rand()
随机选择一个。
<?php
$forbidden = array(2, 3, 6, 8);
$complete = range(1,10);
$allowed = array_diff($complete, $forbidden);
echo $allowed[array_rand($allowed)];
这样您就可以从选择集中删除排除的数字,并消除循环的需要 :)
关于php - 有条件的随机整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10439005/