好!欢迎访问迷津渡口 现在时间是:

迷津渡口

越感到迷惑 越接近真理

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

随机数和随机字符在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]]."<br>".$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;


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

点赞233
   支持一下
挤眼 亲亲 咆哮 开心 想想 可怜 糗大了 委屈 哈哈 小声点 右哼哼 左哼哼 疑问 坏笑 赚钱啦 悲伤 耍酷 勾引 厉害 握手 耶 嘻嘻 害羞 鼓掌 馋嘴 抓狂 抱抱 围观 威武 给力
 点赞
 签到
 表情
 图片
 代码
提交评论

清空信息
关闭评论
 00:00/00:00
我想和你虚度时光 - 花房姑娘(9)
  1. 恋恋风尘
  2. 恋恋风尘
  3. 恋恋风尘
  4. 恋恋风尘
  5. 恋恋风尘
  6. 恋恋风尘
  7. 恋恋风尘
  8. 恋恋风尘
  9. 恋恋风尘