站長資訊網
最全最豐富的資訊網站

php怎么實現數組隨機且不重復

php實現數組隨機且不重復的方法:首先創建一個PHP示例文件;然后利用“array_flip()”函數將數組的鍵和值翻轉;接著利用php數組特性,覆蓋重復的鍵并再翻轉一次;最后去掉重復的值即可。

php怎么實現數組隨機且不重復

推薦:《PHP視頻教程》

下面寫幾種生成不重復隨機數的方法,直接上代碼吧

<?php define('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);	//隨機打亂數組 	$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()更好更快的隨機函數 		$result = array_unique($result); //刪除數組中重復的元素 	} 	return $result; } function rand3() { 	$result = array();    	while(count($result) < COUNT) { 		$_tmp = mt_rand(1, RANDOM_MAX); 		if(!in_array($_tmp, $result)) {	//當數組中不存在相同的元素時,才允許插入 			$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將數組的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); 	} }   ?>

說一下第四種方法,就是翻翻法了,利用array_flip()將數組的鍵和值翻轉,利用php數組特性,重復的鍵會覆蓋,此時再翻轉一次,就相同于去掉了重復的值。

以上幾種方法只是簡單的例子,有的方法適用范圍有限。

在看看幾種方法的效率:

php怎么實現數組隨機且不重復

php怎么實現數組隨機且不重復

用array_unique()在數組較大時性能比較差,當然shuffle()也會受此影響。

贊(0)
分享到: 更多 (0)
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
熟妇人妻VA精品中文字幕| 精品亚洲一区二区三区在线播放| 精品欧洲av无码一区二区14| 国产国产精品人在线观看| 香蕉在线精品一区二区| 亚洲av午夜成人片精品电影| 亚洲av日韩av天堂影片精品| 国产精品麻豆免费版| 精品国产一区二区三区AV| 3D动漫精品啪啪一区二区下载| 911精品国产亚洲日本美国韩国| 亚洲av无码国产精品色午夜字幕| 亚洲精品一品区二品区三品区| 国产精品国产三级国产a| 日本加勒比久久精品| 日韩精品一区二区三区中文3d| 亚洲日韩中文字幕日韩在线| 国产成人无码精品久久二区三区 | 最新69国产成人精品免费视频动漫| 在线综合亚洲中文精品| 91精品国产综合久久香蕉| 久久精品人人槡人妻人人玩AV | 91精品视频观看| 12345国产精品高清在线| 久久久精品国产sm调教网站 | 国产成人亚综合91精品首页| 欧洲精品一区二区三区| 精品久久久久久久免费人妻| 国产精品白丝喷水在线观看者相| 久久精品麻豆日日躁夜夜躁| 精品日产一卡2卡三卡4卡自拍 | 丰满人妻熟妇乱又伦精品视| 国内精品久久久久久麻豆| 久久中文精品无码中文字幕| 国产亚洲精品成人a v小说| 中文字幕精品在线| 国产一区麻豆剧传媒果冻精品| 国内精品一线二线三线黄| 国产精品网站在线观看免费传媒| 女人香蕉久久**毛片精品| 久久精品国产亚洲香蕉|