php - 有条件的随机整数

标签 php random

我有一个 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/

相关文章:

c++ - C++ 中 PRNG 的默认随机引擎为类的每个实例生成相同的输出 - 正确的种子?

php - 尝试在 SUSE 上安装 Pear

php - 如何查找字符串句子中含有特殊字符的单词

php - MySQL获取某个时间段内的Top用户

PHP XMLReader 读取、编辑 Node 、写入 XMLWriter

linux - 为什么 reading/dev/random byte block 如此频繁?

php - 如何将动态 PHP 变量从一个页面传递到另一个页面?

PHP - mt_rand 函数,如何使用它生成随机的 20 个字母密码?

Java学校项目随机错误

jquery - 显示每个div的高度值