php产生随机数的两种方法实例代码 输出随机IP

时间:2022-05-20 16:01:05

分享下php生成随机数的三种方法,生成1-10之间的不重复随机数,php生成不重复随机数的例子,需要的朋友参考下。

如何用php生成1-10之间的不重复随机数?

例1,使用shuffle函数生成随机数。

  1. <?php 
  2. $arr=range(1,10); 
  3. shuffle($arr); 
  4. foreach($arr as $values) 
  5.   echo $values." "
  6. ?> 

例2,使用array_unique函数生成随机数。

  1. <?php 
  2. $arr=array(); 
  3. while(count($arr)<10) 
  4.   $arr[]=rand(1,10); 
  5.   $arr=array_unique($arr); 
  6. echo implode(" ",$arr); 
  7. ?> 

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

  1. <?php 
  2. $arr=array(); 
  3. $count1=0; 
  4. $count = 0; 
  5. $return = array(); 
  6. while ($count < 10)  
  7.  { 
  8.   $return[] = mt_rand(1, 10); 
  9.   $return = array_flip(array_flip($return)); 
  10.   $count = count($return); 
  11.  } //www.zzvips.com 
  12. foreach($return as $value) 
  13.  { 
  14.   echo $value." "
  15.  } 
  16. echo "<br/>"
  17. $arr=array_values($return);// 获得数组的值  
  18. foreach($arr as $key) 
  19. echo $key." "
  20. ?> 

本人是asp程序员,这是首次写php程序,一点心得发上来共享

  1. <?php  
  2. $ip2id= round(rand(600000, 2550000) / 10000); //第一种方法,直接生成  
  3. $ip3id= round(rand(600000, 2550000) / 10000);  
  4. $ip4id= round(rand(600000, 2550000) / 10000);  
  5. //下面是第二种方法,在以下数据中随机抽取  
  6. $arr_1 = array("218","218","66","66","218","218","60","60","202","204","66","66","66","59","61","60","222","221","66","59","60","60","66","218","218","62","63","64","66","66","122","211");  
  7. $randarr= mt_rand(0,count($arr_1)-1);  
  8. $ip1id = $arr_1[$randarr];  
  9. echo $ip1id;  
  10. echo ".";  
  11. echo $ip2id;  
  12. echo ".";  
  13. echo $ip3id;  
  14. echo ".";  
  15. echo $ip4id;  
  16. ?> 

例输出结果为 218.28.131.182

这个程序的特点是,生成的ip第一个字段时在指定范围内的,设定的几个是国内常见号段,也就是说生成的ip地址大部分是国内的

核心代码:

  1. <?php  
  2. $arr_1 = array("http://66.249.89.99","http://66.249.89.104","http://74.125.71.105");  
  3. $randarr= mt_rand(0,count($arr_1)-1);  
  4. $gip= $arr_1[$randarr];  
  5. echo $gip."$randarr";  
  6. ?>