首頁 > 後端開發 > php教程 > PHP隨機數怎麼字母加數字組合,前兩個是字母後邊是數字?

PHP隨機數怎麼字母加數字組合,前兩個是字母後邊是數字?

WBOY
發布: 2016-09-21 14:12:54
原創
1252 人瀏覽過

PHP隨機數字怎麼字母加數字組合,前兩個是字母後面是數字?

回覆內容:

PHP隨機數字怎麼字母加數字組合,前兩個是字母後面是數字?

樓上說的思路沒錯,隨機的數量太大會出現重複是很正常的,按你的需求寫了個方法, 有興趣的話, 可以跑個百萬次看看重複的概率是多少

<code>function getRandomString($prefixLength = 2, $suffixLength = 6) {
    $t = '';
    for ($i=0; $i<$prefixLength; $i++) {
        $salt = mt_rand(1000, 9999);
        if ($salt % 2) {
            $t .= chr(mt_rand(97,122));
        } else {
            $t .= chr(mt_rand(65,90));
        }
    }
    $min = intval(str_pad('1', $suffixLength, '0', STR_PAD_RIGHT));
    $max = intval(str_repeat('9', $suffixLength));
    return $t . mt_rand($min, $max);
}

</code>
登入後複製

先生成隨機字母,在產生隨機數字,不過這樣可能出現重複,想盡量避開重複只能從後面的數字下手啦。如下例子你試試看呢

<code>function randomKey(){
    $re = '';
    $letter = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    while(strlen($re)<2) {
        $re .= $letter[rand(0, strlen($letter)-1)]; /** 从$letter中随机产生一个字符 */
    }
    $_rand = mt_rand(10000000, 99999999); /** 生成8位随机数 */
    list($usec, $sec) = explode(" ", microtime()); /** 获取微秒时间戳 */
    $microtime = str_replace(".", "", ((float)$usec + (float)$sec)); /** 处理字符串 */
    
    $result = $re.$_rand.$microtime;
}</code>
登入後複製

這樣產生的隨機數可能有點長,你可以把隨機數字去掉,直接使用字母加微妙時間戳也行。僅供參考

你隨機倆字母 在隨機些數組 然後拼接到一起不就可以嗎?還是有特殊需求?

相關標籤:
php
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板