• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

生成PHP随机数的几种方法

php 搞代码 4年前 (2022-01-23) 20次浏览 已收录 0个评论

下面这种方式是我经常使用的,比较人性化

/** * 生成随机字符串 * @param int       $length  要生成的随机字符串长度 * @param string    $type    随机码类型:0,数字+大写字母;1,数字;2,小写字母;3,大写字母;4,特殊字符;-1,数字+大小写字母+特殊字符 * @return string <p style="color:transparent">。本文来源gao!%daima.com搞$代*!码网1</p><cite>搞代gaodaima码</cite>*/function randCode($length = 5, $type = 0) {    $arr = array(1 => "0123456789", 2 => "abcdefghijklmnopqrstuvwxyz", 3 => "ABCDEFGHIJKLMNOPQRSTUVWXYZ", 4 => "~@#$%^&*(){}[]|");    if ($type == 0) {        array_pop($arr);        $string = implode("", $arr);    } else if ($type == "-1") {        $string = implode("", $arr);    } else {        $string = $arr[$type];    }    $count = strlen($string) - 1;    for ($i = 0; $i < $length; $i++) {        $str[$i] = $string[rand(0, $count)];        $code .= $str[$i];    }    return $code;}

生成定长随机数:

function generate_code($length = 4) {         return rand(pow(10,($length-1)), pow(10,$length)-1); }

下面跟上面的效果一样,只是写法不一样而已。

function generate_code($length = 4) {         $min = pow(10 , ($length - 1));         $max = pow(10, $length) - 1;         return rand($min, $max); }

如:

echo generate_code(5);//输出结果: 56482

再刷新一次,所以数字和顺序都会变动。

以上这两种代码比较简洁,但也只能生成数字,追求代码简洁的可以使用

$arr=range(1,10); shuffle($arr); foreach($arr as $values) {       echo $values.","; } //输出结果:10,5,7,8,6,2,9,4,1,3,1

这种主要是靠php的内置函数range()来生成,生成两个参数范围的随机数,而且他们是可以生成多组数字,这种就比较呆板了,而且不是都放在方法里面,不过大家可以根据需求来使用。

以下这种跟上面这种没多大区别,只是生成的方法不太一样,主要是靠array_unique函数来生成。

$arr=array(); while(count($arr)<10) {       $arr[]=rand(1,10);       $arr=array_unique($arr); } echo implode(" ",$arr);

其他的生成方法我在这里就不多说了,我们只要记住常用的,而且效率比较高的几种就行了,我们在开发的过程中,可以根据需求来写适合我们自己的php随机数函数。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:生成PHP随机数的几种方法

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址