亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

垫江县| 鹿邑县| 丹阳市| 玉溪市| 麻江县| 四会市| 滁州市| 松桃| 西安市| 莲花县| 礼泉县| 德化县| 左贡县| 嘉禾县| 班戈县| 保德县| 西林县| 共和县| 射阳县| 义马市| 晋宁县| 白玉县| 织金县| 申扎县| 黔江区| 成武县| 信丰县| 陵川县| 西安市| 当阳市| 宽城| 康定县| 永顺县| 淄博市| 牡丹江市| 吴堡县| 峡江县| 甘洛县| 依安县| 会泽县| 山东|