如何用php生成1-10之間的不重復隨機數?
例1,使用shuffle函數生成隨機數。
?php$arr=range(1,10);shuffle($arr);foreach($arr as $html' target='_blank'>values) echo $values. ?
例2,使用array_unique函數生成隨機數。
?php$arr=array();while(count($arr) 10) $arr[]=rand(1,10); $arr=array_unique($arr);echo implode( ,$arr);?
例3,使用array_flip函數生成隨機數,可以去掉重復值。
?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.jb51.netforeach($return as $value) echo $value. echo br/ $arr=array_values($return);// 獲得數組的值 foreach($arr as $key)echo $key. ?
php隨機數生成函數示例
?phpfunction randpw($len=8,$format= ALL ){$is_abc = $is_numer = 0;$password = $tmp = switch($format){case ALL :$chars= ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 break;case CHAR :$chars= ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz break;case NUMBER :$chars= 0123456789 break;default :$chars= ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 break;} // www.jb51.netmt_srand((double)microtime()*1000000*getmypid());while(strlen($password) $len){$tmp =substr($chars,(mt_rand()%strlen($chars)),1);if(($is_numer 1 is_numeric($tmp) $tmp 0 )|| $format == CHAR ){$is_numer = 1;if(($is_abc 1 preg_match( /[a-zA-Z]/ ,$tmp)) || $format == NUMBER ){$is_abc = 1;$password.= $tmp;if($is_numer 1 || $is_abc 1 || empty($password) ){$password = randpw($len,$format);return $password;for($i = 0 ; $i $i++){echo randpw(8, NUMBER echo br }
以上就是本文的全部內容,希望對大家的學習有所幫助,更多相關內容請關注PHP !
相關推薦:
PHP生成圖片驗證碼以及點擊切換的代碼
關于PHP實現微信紅包金額拆分的算法
以上就是在php中生成隨機數的3種方法的詳細內容,PHP教程
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
新聞熱點
疑難解答