请选择 进入手机版 | 继续访问电脑版
绿茶科技社区
PHP n个不重复的随机数生成代码,原理就是将数组顺序随即打乱 ,然取该数组中的某一段
  1. <?php
  2. //range 是将1到100 列成一个数组
  3. $numbers = range (1,100);
  4. //shuffle 将数组顺序随即打乱
  5. shuffle ($numbers);
  6. //array_slice 取该数组中的某一段
  7. $no=6;
  8. $result = array_slice($numbers,0,$no);
  9. for ($i=0;$i<$no;$i++){
  10. echo $result[$i]."<br>";
  11. }
  12. print_r($result);
  13. ?>
复制代码
  1. //range 是将1到42 列成一个数组
  2. $numbers = range (1,42);
  3. //shuffle 将数组顺序随即打乱
  4. shuffle ($numbers);
  5. //array_slice 取该数组中的某一段
  6. $result = array_slice($numbers,0,3);
  7. print_r($result);
复制代码
方法2
  1. <?php
  2. $numbers = range (1,20);
  3. srand ((float)microtime()*1000000);
  4. shuffle ($numbers);
  5. while (list (, $number) = each ($numbers)) {
  6. echo "$number ";
  7. }
  8. ?>
复制代码
方法3
用PHP,在1-20间随机产生5个不重复的值,如何做
  1. <?php
  2. function NoRand($begin=0,$end=20,$limit=5){
  3. $rand_array=range($begin,$end);
  4. shuffle($rand_array);//调用现成的数组随机排列函数
  5. return array_slice($rand_array,0,$limit);//截取前$limit个
  6. }
  7. print_r(NoRand());
  8. ?>
复制代码
或者不shuffle的话


  1. <?php
  2. $tmp=array();
  3. while(count($tmp)<5){
  4. $tmp[]=mt_rand(1,20);
  5. $tmp=array_unique($tmp);
  6. }
  7. print join(',',$tmp);
  8. ?>
复制代码


分享到 :
0 人收藏

2 个回复

倒序浏览
wolfy  高级会员 | 2019-9-4 06:04:19
我也顶起出售广告位
施杨  高级会员 | 6 天前
我也是坐沙发的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

举报|Archiver|手机版|小黑屋|Lvchakeji Inc.  

Powered by Discuz! X3.3 © 2001-2016 Comsenz Inc.

返回顶部