我有一个PHP脚本,其中我有一个整数数组,让我们说$forbidden
。
我想获得1到400之间的随机整数,该整数不在$forbidden
。
当然,我不希望任何循环在rand给出工作结果时中断。我想要更有效的东西。
你是怎么做到的?
答案 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)
生成允许数字的数组。找出这个数组中的数字。随机选择其中一个。