站長(zhǎng)資訊網(wǎng)
        最全最豐富的資訊網(wǎng)站

        分享php生成不重復(fù)隨機(jī)數(shù)、數(shù)組的4種方法

        分享php生成不重復(fù)隨機(jī)數(shù)、數(shù)組的4種方法

        下面寫幾種生成不重復(fù)隨機(jī)數(shù)的方法,直接上代碼吧

        代碼如下:

        <?phpdefine('RANDOM_MAX', 100);define('COUNT', 10); echo 'max random num: '.RANDOM_MAX, ' ;result count:'.COUNT, '<br/>'; invoke_entry('rand1');invoke_entry('rand2');invoke_entry('rand3');invoke_entry('rand4'); function invoke_entry($func_name) { $time = new time(); $time->time_start(); call_user_func($func_name); echo $func_name.' time spend: ', $time->time_spend(); echo '<br/>';}function rand1() { $numbers = range (1, RANDOM_MAX); shuffle($numbers); //隨機(jī)打亂數(shù)組 $result = array_slice($numbers, 1, COUNT); return $result;}function rand2() { $result = array();  while(count($result)< COUNT) {  $result[] = mt_rand(1, RANDOM_MAX); //mt_rand()是比rand()更好更快的隨機(jī)函數(shù)  $result = array_unique($result); //刪除數(shù)組中重復(fù)的元素 } return $result;}function rand3() { $result = array();    while(count($result) < COUNT) {  $_tmp = mt_rand(1, RANDOM_MAX);  if(!in_array($_tmp, $result)) { //當(dāng)數(shù)組中不存在相同的元素時(shí),才允許插入   $result[] = $_tmp;  } }    return $result;}function rand4() { $result = array(); while (count($result) < COUNT) {  $result[] = mt_rand(1, RANDOM_MAX);  $result = array_flip(array_flip($result)); //array_flip將數(shù)組的key和value交換 } return $result;}class time { private $_start;  public function time_start() {  $this->_start = $this->microtime_float(); } public function time_spend() {  return $this->microtime_float() - $this->_start; } private function microtime_float() {  list($usec, $sec) = explode(" ", microtime());  return ((float)$usec + (float)$sec); }} ?>

        說(shuō)一下第四種方法,就是翻翻法了,利用array_flip()將數(shù)組的鍵和值翻轉(zhuǎn),利用php數(shù)組特性,重復(fù)的鍵會(huì)覆蓋,此時(shí)再翻轉(zhuǎn)一次,就相同于去掉了重復(fù)的值。
        以上幾種方法只是簡(jiǎn)單的例子,有的方法適用范圍有限。

        在看看幾種方法的效率:

        分享php生成不重復(fù)隨機(jī)數(shù)、數(shù)組的4種方法

        分享php生成不重復(fù)隨機(jī)數(shù)、數(shù)組的4種方法

        array_unique()在數(shù)組較大時(shí)性能比較差,當(dāng)然shuffle()也會(huì)受此影響。

        相關(guān)學(xué)習(xí)推薦:PHP編程從入門到精通

        贊(0)
        分享到: 更多 (0)
        網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)
        主站蜘蛛池模板: 四虎永久在线精品国产馆V视影院| 国产精品免费高清在线观看| 国产亚洲精品无码成人| 欧美韩国精品另类综合| 精品一区二区三区在线视频| 久久精品成人国产午夜| 欧美精品一区二区三区视频| 精品国产91久久久久久久a | 国产情侣大量精品视频| 国产精品户外野外| 欧美国产精品久久高清| 亚洲处破女AV日韩精品| 国产一成人精品福利网站| 国产精品99| 亚洲精品无码AV人在线播放| 国产精品免费观看| 人妻一区二区三区无码精品一区| 亚洲av无码精品网站| 高清免费久久午夜精品| 国产午夜精品一区二区三区不卡| 欧美精品三区| 国产精品亚洲午夜一区二区三区 | 久久精品国产只有精品2020| 午夜精品久久久内射近拍高清| 999久久久无码国产精品| 国内精品欧美久久精品| 国产精品免费看久久久| 日韩欧美亚洲国产精品字幕久久久 | 国产A级毛片久久久精品毛片 | 99久久国产综合精品网成人影院| 青青草97国产精品免费观看| 人人妻人人澡人人爽精品日本| 久久精品成人一区二区三区| 精品无码人妻一区二区免费蜜桃| 四虎国产精品永久地址51| 亚洲伊人久久精品影院| 99精品福利国产在线| 精品蜜臀久久久久99网站| 亚洲精品无码永久在线观看| 国产成人精品cao在线| 国产精品爽黄69天堂a|