如何在1-10之间生成1-10个不重复的随机数

在示例1中,通过使用洗牌函数生成随机数。


< PHP
$ ARR =范围(1,10);
洗牌($ ARR);
foreach(ARR美元美元值)
{
回波值。;
}
>


在例2中,一个随机数是通过array_unique函数生成。


< PHP
ARR =阵列(美元);
而(计数($ ARR)<10)
{
$ ARR { } =兰特(1,10);
ARR = array_unique美元($ ARR);
}
回声崩溃(
>


在例3的array_flip函数来产生一个随机数,这可以从重复值删除。


< PHP
ARR =阵列(美元);
COUNT1 = 0美元;
$=0;
$ =数组();
(10美元)
{
{ } = mt_rand美元的收益(1, 10);
为回报= array_flip(array_flip(美元收益));
计数= $(返回);
}
foreach(美元回报价值)
{
回波值。;
}
;
美元(美元收益array_values ARR = / /获得);数组的值
foreach(ARR美元美元的关键)
回波键。;
>


PHP随机数生成函数示例


< PHP
功能randpw($ len = 8,$格式= 'all'){
is_abc = is_numer美元= 0美元;
密码= $ = '';
开关($格式){
case'all:
$字符= 'abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz0123456789;
打破;
case'char:
$字符= 'abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz;
打破;
case'number:
$字符= '0123456789;
打破;
违约:
$字符= 'abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz0123456789;
打破;
}
mt_srand((双)microtime()* 1000000 * getmypid()));
而(strlen($密码)< $ len){
$ TMP = substr($字符,(mt_rand strlen()%($字符)),1);
如果(($ is_numer <> 1美元(美元is_numeric TMP)TMP > 0)| |格式= = 'char美元){
is_numer = 1美元;
}
如果(($ is_abc <> 1 preg_match( / / a-za-z } {,$ TMP)| |)格式= =美元数){
is_abc = 1美元;
}
密码;
}
如果($ is_numer is_abc美元1 | | | | <> 1 <> {空($密码))
密码= randpw美元($ Len,$格式);
}
返回$密码;
}
($ i = 0;$ i < 10;$ + +){
回声randpw(8,数);
;
}