php 怎么产生随机数字,PHP教程-如何产生不重复随机数和随机字符

本文介绍了PHP中生成随机数和随机字符串的多种常见方法,包括使用rand()函数、range()+shuffle()+array_slice()组合、自定义数组配合array_rand()以及自定义字符串通过str_shuffle()+substr()。这些技巧常用于生成验证码、密码等,适用于需要无重复随机数或字符串的场景。
摘要由CSDN通过智能技术生成

随机数和随机字符在PHP项目中很常用,小指总结了几种常见的方法:

rand():返回某个范围内的一个随机数// 返回1-50内的某个随机数

echo rand(1,50);

优点:速度快,要求不高时实用。

缺点:重复几率较大,在获取多个随机数时,无法控制重复。

range()+shuffle()+array_slice():返回某个范围内的一组不重复的随机数// 获取1-50的数组

$numarr=range(1,50);

// 打乱数组排列

shuffle($numarr);

// 返回一组5个不重复的随机数

$result=array_slice($numarr,0,5);

print_r($result);

自定义数组+array_rand():返回数组内一组不重复的键值// 自定义数组

$arr=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");

// 获取长度为2的随机键构成的数组

$arrkeys=array_rand($arr,2);

// 获取键值对应的数组值

echo $arr[$arrkeys[0]]."
".$arr[$arrkeys[1]];

自定义数组+shuffle()+array_slice():返回自定义数组内一组随机不重复的值// 自定义数组

$arr=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");

// 随机打乱数组,注意此时键均被转化为数字键

shuffle($arr);

// 返回2个不重复的随机值

$result=array_slice($arr,0,2);

print_r($result);

自定义字符串+str_shuffle()+substr():返回自定义字符串内一组随机字符串// 大小写和数字组成的字符串

$str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";

// 随机打乱字符串

str_shuffle($str);

// 返回长度为8的随机字符串

echo subtr($str,0,8);

常用于生成验证码,密码等。

另一种用法:可能生成重复字符,但相对随机:// 大小写和数字组成的字符串

$str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";

$strresult='';

for ($i=0;$i<8;$i++) {

// 随机打乱字符串

str_shuffle($str);

// 返回长度为8的随机字符串

$strresult.=subtr($str,0,1);

}

echo $strresult;

以上总结的都是实用常用的代码,其他的有更好的欢迎分享~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值