91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php實現數組隨機且不重復的方法

發布時間:2020-09-22 10:02:32 來源:億速云 閱讀:173 作者:小新 欄目:編程語言

這篇文章將為大家詳細講解有關php實現數組隨機且不重復的方法,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

php實現數組隨機且不重復的方法:首先創建一個PHP示例文件;然后利用“array_flip()”函數將數組的鍵和值翻轉;接著利用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()也會受此影響。

關于php實現數組隨機且不重復的方法就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

金堂县| 谢通门县| 康马县| 临夏市| 城市| 黄龙县| 大方县| 监利县| 庄河市| 苍溪县| 潍坊市| 富锦市| 麻阳| 正阳县| 台中县| 宜州市| 景谷| 樟树市| 茶陵县| 民乐县| 临江市| 射洪县| 大余县| 广元市| 北宁市| 尉犁县| 大方县| 余江县| 依安县| 临夏县| 湘阴县| 东城区| 合川市| 庆元县| 佛学| 祁阳县| 本溪| 汕头市| 双流县| 马边| 铁岭县|