Wie kombiniere ich Buchstaben und Zahlen in PHP-Zufallszahlen? Die ersten beiden sind Buchstaben, denen Zahlen folgen?
Wie kombiniere ich Buchstaben und Zahlen in PHP-Zufallszahlen? Die ersten beiden sind Buchstaben, denen Zahlen folgen?
Die oben erwähnte Idee ist normal, wenn die Zufallszahl zu groß ist. Wenn Sie interessiert sind, können Sie sie millionenfach ausführen Wahrscheinlichkeit der Wiederholung ist.
<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>
Generieren Sie zunächst zufällige Buchstaben und dann zufällige Zahlen. Dies kann jedoch zu Duplikaten führen. Wenn Sie Duplikate so weit wie möglich vermeiden möchten, können Sie nur mit den folgenden Zahlen beginnen. Bitte versuchen Sie das folgende Beispiel
<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>
Die auf diese Weise generierte Zufallszahl kann etwas lang sein. Sie können die Zufallszahl entfernen oder direkt Buchstaben und subtile Zeitstempel verwenden. Nur als Referenz
Können Sie nicht einfach zwei zufällige Buchstaben in zufällige Arrays einfügen und sie dann zusammenfügen? Oder haben Sie besondere Bedürfnisse?