js和php能生成一样的随机数_生成PHP随机数的几种方法

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

废话不多,直接上码

/**

* 生成随机字符串

* @param int $length 要生成的随机字符串长度

* @param string $type 随机码类型:0,数字+大写字母;1,数字;2,小写字母;3,大写字母;4,特殊字符;-1,数字+大小写字母+特殊字符

* @return string

*/

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);

输出:

bdf947b4c159a4e81a924419a0cf3464.png

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

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

$arr=range(1,10);

shuffle($arr);

foreach($arr as $values) {

echo $values.",";

}

输出

9a63c1a642e12bbaf9c7b3d61ddef71c.png

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

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

$arr=array();

while(count($arr)<10) {

$arr[]=rand(1,10);

$arr=array_unique($arr);

}

echo implode(" ",$arr);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值