当前位置:首页 » 编程语言 » php生成不重复的数字

php生成不重复的数字

发布时间: 2025-08-30 02:46:25

1. php向一个空数组中添加1000个不重复的数字,要求:数字需要在0-3000中产的代码

// 1、首先定义一个空的目标数组
$arr = [];
// 2、开始for循环
for ($i = 0; $i < 1000; ) {
****// 3、获取0~3000之间的随机数
****$r = rand(0, 3000);
****// 4、判断该随机数是否存在目标数组中
****if (!in_array($r, $arr)) {
********// 5、如果不存在,则将该随机数添加到目标数组中
********$arr[] = $r;
********// 6、最关键的一步:只有向目标数组添加新值的时候才改变$i的值
********$i ++;
****}
****continue;
}
// 7、最后打印出目标数组,也可使用print_r函数
var_mp($arr);
die;
总结:该题的难点在于在什么时候再改变计数器变量$i的值,只有数组元素新增的时候才能改变$i,使其加1,当然for循环体也可反向写,也可采用别的循环结构,留给你自己发挥^>^。
希望能帮助到你,望采纳,谢谢~

2. php 生成不重复随机数(组)的几种方法

您好,很高兴回答您的问题

$numbers=range(1,50);
//将数组顺序随机打乱
shuffle($numbers);
//取该数组中的某一段
$result=array_slice($numbers,0,6);
print_r($result);
$tmp=array();
while(count($tmp)<5){
$tmp[]=mt_rand(1,20);
$tmp=array_unique($tmp);
}
print_r($tmp);

3. 如何用phpfor循环生成5位,数字字母组合,永不不重复

如果你希望永不重复 建议采用 PHP GUID

GUID是什么

GUID: 即Globally Unique Identifier(全球唯一标识符) 也称作 UUID(Universally Unique IDentifier) 。 GUID是一个通过特定算法产生的二进制长度为128位的数字标识符,用于指示产品的唯一性。GUID 主要用于在拥有多个节点、多台计算机的网络或系统中,分配必须具有唯一性的标识符。

PHP中并不提供GUID的内部实现。为此我们可以自己写算法实现。代码片段如下:
function create_guid() {
$charid = strtoupper(md5(uniqid(mt_rand(), true)));
$hyphen = chr(45);// "-"
$uuid = chr(123)// "{"
.substr($charid, 0, 8).$hyphen
.substr($charid, 8, 4).$hyphen
.substr($charid,12, 4).$hyphen
.substr($charid,16, 4).$hyphen
.substr($charid,20,12)
.chr(125);// "}"
return $uuid;
}

4. php 生成多个(比如1w个)不重复的12位随机数,请教!

  1. 一般来说你一次搞这么多随机数,每次单独随机排重,1w个随机数弄下来效率就不行了,比较随机函数算法还是效率不是很高;

  2. 我感觉最简单做法,先弄好12位按顺序生成大数组,第一种就是array_rand
    随机取,第二种就是把12打乱,然后用array_slice取1万条;

  3. 你这个问题我关注一下,看看其他有没有好办法。

5. php随机生成数据库中不存在、不重复数字

说下思路:

1. 将生成的数字保存到mysql数据库,然后每次生成的号码不能与数据库的数字重复,请问怎么弄?

先读取数据库已存在的数字,将结果以数组格式,与rand(1,1000)的数组相比较计算前宏差集,去除这部分数字(array_diff),再shuffle,得到新的随机数。

我觉得,你完全可以建立一个序号表,比如,1-陵判1000,每次用时先用随机函数取(1-数据记录数)个数值,再用这个数值取得相应的记录,当取出之后,删除这个记录,这样保证记录总数一直会减少且数字也不会重复。

2. 有没有什么办法生成的时候先生成一位数的,一位数生成满了以后再生出两位数的,两位数满了然后再三位数的,以此类推?

先获取一位数的记录,再从中随机抽取一个,如果数据库中没有找到一位数的,就递增一位数,直到找到为止。

3. 代码的执行效率希望能越高越好!

如果想要代码执行效率,最好尽量减少与数据库的交互尺悔改。

热点内容
移动卡服务器密码是什么 发布:2025-08-30 04:21:02 浏览:245
linux卷管理 发布:2025-08-30 03:58:05 浏览:210
如何查到自己的wifi密码 发布:2025-08-30 03:49:05 浏览:661
linux默认编码 发布:2025-08-30 03:44:23 浏览:287
如何取消安卓手机日志抓取文件 发布:2025-08-30 03:20:12 浏览:536
安卓渠道服什么样子 发布:2025-08-30 03:19:21 浏览:919
爱奇艺安卓和苹果哪个好 发布:2025-08-30 02:57:16 浏览:455
国内安卓机哪个牌子拍照美颜最好 发布:2025-08-30 02:52:13 浏览:345
数据存储时间 发布:2025-08-30 02:51:36 浏览:604
php生成不重复的数字 发布:2025-08-30 02:46:25 浏览:377