原理就是将数组顺序随即打乱 ,然取该数组中的某一段
方法1:

  1. <?php 
  2. //range 是将1到100 列成一个数组 
  3. $numbers = range (1,100); 
  4. //shuffle 将数组顺序随即打乱 
  5. shuffle ($numbers); 
  6. //array_slice 取该数组中的某一段 
  7. $result = array_slice($numbers,0,3); 
  8. print_r($result); 
  9. ?>

方法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. ?>

发表评论

电子邮件地址不会被公开。 必填项已用*标注