php随机字符串生成方式(教你php随机生成20个数字)

php随机字符串生成方式(教你php随机生成20个数字)

1. 使用shuffle函数生成随机数。

代码:

<?php

$arr = range(1,10);

shuffle($arr);

foreach($arr as $values) { echo $values.” “;

}

?>

结果:

10 1 4 3 7 5 8 9 2 6

2.使用array_unique函数生成随机数。

代码:

<?php

$arr = array();

while(count($arr) < 10){ $arr[] = rand(1,10); $arr = array_unique($arr);

}

echo implode(” “,$arr);

?>

结果:

9 8 2 5 7 3 6 4 10 1

3.使用array_flip函数生成随机数,可以去掉重复值。

代码:

<?php

$arr = array();

$count1 = 0;

$count = 0;

$return = array();

while ($count < 10) { $return[] = mt_rand(1, 10); $return = array_flip(array_flip($return)); $count = count($return);

}

foreach($return as $value) { echo $value.” “;}

echo “<br/>”;

$arr = array_values($return);

foreach($arr as $key) {

echo $key.” “;

}

?>

结果:

10 9 2 1 6 8 3 7 5 4

<br/>

10 9 2 1 6 8 3 7 5 4

4.函数生成随机数

代码:

<?php

function randpw ($len=8,$format=’ALL’) {

$is_abc = $is_numer = 0;

$password = $tmp =”;

switch($format){

case ‘ALL’:

$chars=’ABCDEQRSTUVWXYZabcijklmnopqrstuvwxyz0123456789′;

break;

case ‘CHAR’:

$chars=’ABCDEQRSTUVWXYZabcijklmnopqrstuvwxyz0123456789′;

break;

case ‘NUMBER’:

$chars=’0123456789′;

break;

default :

$chars=’ABCDEQRSTUVWXYZabcijklmnopqrstuvwxyz0123456789′;

break;

}

mt_srand((double)microtime()*1000000*getmypid());

while(strlen($password)<$len){

$tmp =substr($chars,(mt_rand()%strlen($chars)),1);

if(($is_numer <> 1 && is_numeric($tmp) && $tmp > 0 )|| $format == ‘CHAR’){

$is_numer = 1;

}

if(($is_abc <> 1 && preg_match(‘/[a-zA-Z]/’,$tmp)) || $format == ‘NUMBER’){

$is_abc = 1;

}

$password.= $tmp;

}

if($is_numer <> 1 || $is_abc <> 1 || empty($password) ){

$password = randpw($len,$format);

}

return $password;

}

for($i = 0 ; $i < 10; $i ){

echo randpw(8,’NUMBER’);

echo “<br>”;

}

结果:

90352814

<br>

64686543

<br>

25838121

<br>

15654127

<br>

32277369

<br>

74076549

<br>

85556664

<br>

24773400

<br>

82633658

<br>

69957602

<br>

5.直接使用mt_rand()函数生成随机数。

代码:

<?php

echo mt_rand(1, 10);

结果:

5

发表评论

登录后才能评论