本文目錄一覽:
- 1、php 隨機生成不重複用戶ID
- 2、如何使用php生成唯一ID的4種方法
- 3、PHP的uniqid函數產生的id真的是唯一的么
- 4、php 生成唯一id的幾種解決方法
- 5、怎麼讓php生成唯一數字ID的重複度降低
php 隨機生成不重複用戶ID
php可以使用uniqid函數生成唯一的ID
uniqid — 生成一個唯一ID
string uniqid([ string $prefix = “”[, bool $more_entropy = false]])
獲取一個帶前綴、基於當前時間微秒數的唯一ID。
參數說明:
prefix:有用的參數。例如:如果在多台主機上可能在同一微秒生成唯一ID。
prefix為空,則返回的字符串長度為13。more_entropy 為 TRUE,則返回的字符串長度為23。
more_entropy:如果設置為 TRUE,uniqid() 會在返回的字符串結尾增加額外的煽(使用combined linear congruential generator)。使得唯一ID更具唯一性。
返回值:
返回字符串形式的唯一ID。
如何使用php生成唯一ID的4種方法
方法1
?php
$numbers = range (1,50);
//shuffle 將數組順序隨即打亂
shuffle ($numbers);
//array_slice 取該數組中的某一段
$num=6;
$result = array_slice($numbers,0,$num);
print_r($result);
?
方法二
?php
$numbers = range (1,20);
//播下隨機數發生器種子,可有可無,測試後對結果沒有影響
srand ((float)microtime()*1000000);
shuffle ($numbers);
//跳過list第一個值(保存的是索引)
while (list(, $number) = each ($numbers)) {
echo “$number “;
}
?
方法三
?php
function NoRand($begin=0,$end=20,$limit=5){
$rand_array=range($begin,$end);
shuffle($rand_array);//調用現成的數組隨機排列函數
return array_slice($rand_array,0,$limit);//截取前$limit個
}
print_r(NoRand());
?
方法四
?php
$tmp=array();
while(count($tmp)5){
$tmp[]=mt_rand(1,20);
$tmp=array_unique($tmp);
}
print_r($tmp);
?
方法五
?php
$tmp = range(1,30);
print_r(array_rand($tmp,10));
?
都在這咯,希望可以幫到你
PHP的uniqid函數產生的id真的是唯一的么
生成唯一ID的應用場景非常普遍,如臨時緩存文件名稱,臨時變量,臨時安全碼等,uniqid()函數基於以微秒計的當前時間,生成一個唯一的 ID。由於生成唯一ID與微秒時間關聯,因此ID的唯一性非常可靠。
生成的唯一ID默認返回的字符串有 13 個字符串長,如果不定義唯一ID的前綴,最多可返回23個字符串長,如果再結合md5()函數,生成的唯一ID可靠性將更高,這種生成的ID比隨機性的ID 最大優點在於可實現排序,特別是一些需要存儲在數據庫中的值。
php 生成唯一id的幾種解決方法
數據庫設置一個字段為id,為主鍵就可以了,設置自增,每次增加一條數據時,它就是唯一的id
怎麼讓php生成唯一數字ID的重複度降低
uniqid() 函數基於以微秒計的當前時間,生成一個唯一的 ID
uniqid(prefix,more_entropy)
prefix 可選。為 ID 規定前綴。如果兩個腳本恰好在相同的微秒生成 ID,該參數很有用。
more_entropy 可選。規定位於返回值末尾的更多的熵。
如果 prefix 參數為空,則返回的字符串有 13 個字符串長。如果 more_entropy 參數設置為 true,則是 23 個字符串長。
如果 more_entropy 參數設置為 true,則在返回值的末尾添加額外的熵(使用組合線形同餘數生成程序),這樣可以結果的唯一性更好。
原創文章,作者:CKYO4,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/130004.html