分享下php生成隨機(jī)數(shù)的三種方法,生成1-10之間的不重復(fù)隨機(jī)數(shù),php生成不重復(fù)隨機(jī)數(shù)的例子,需要的朋友參考下。
如何用php生成1-10之間的不重復(fù)隨機(jī)數(shù)?
例1,使用shuffle函數(shù)生成隨機(jī)數(shù)。
- <?php
- $arr=range(1,10);
- shuffle($arr);
- foreach($arr as $values)
- {
- echo $values." ";
- }
- ?>
例2,使用array_unique函數(shù)生成隨機(jī)數(shù)。
- <?php
- $arr=array();
- while(count($arr)<10)
- {
- $arr[]=rand(1,10);
- $arr=array_unique($arr);
- }
- echo implode(" ",$arr);
- ?>
例3,使用array_flip函數(shù)生成隨機(jī)數(shù),可以去掉重復(fù)值。
- <?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);
- } //www.jfrwli.cn
- foreach($return as $value)
- {
- echo $value." ";
- }
- echo "<br/>";
- $arr=array_values($return);// 獲得數(shù)組的值
- foreach($arr as $key)
- echo $key." ";
- ?>
本人是asp程序員,這是首次寫php程序,一點(diǎn)心得發(fā)上來共享
- <?php
- $ip2id= round(rand(600000, 2550000) / 10000); //第一種方法,直接生成
- $ip3id= round(rand(600000, 2550000) / 10000);
- $ip4id= round(rand(600000, 2550000) / 10000);
- //下面是第二種方法,在以下數(shù)據(jù)中隨機(jī)抽取
- $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");
- $randarr= mt_rand(0,count($arr_1)-1);
- $ip1id = $arr_1[$randarr];
- echo $ip1id;
- echo ".";
- echo $ip2id;
- echo ".";
- echo $ip3id;
- echo ".";
- echo $ip4id;
- ?>
例輸出結(jié)果為 218.28.131.182
這個程序的特點(diǎn)是,生成的ip第一個字段時在指定范圍內(nèi)的,設(shè)定的幾個是國內(nèi)常見號段,也就是說生成的ip地址大部分是國內(nèi)的
核心代碼:
- <?php
- $arr_1 = array("http://66.249.89.99","http://66.249.89.104","http://74.125.71.105");
- $randarr= mt_rand(0,count($arr_1)-1);
- $gip= $arr_1[$randarr];
- echo $gip."$randarr";
- ?>