带条件的随机整数

Cyd*_*ia7 5 php random

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

我想得到1到400之间的随机整数$forbidden.

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

你怎么做到这一点 ?

Mad*_*iha 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)];
Run Code Online (Sandbox Code Playgroud)

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