我已經做了串產生:如何使隨機字符串生成器篩選出重複的字符串?
<?php
function createRandomPassword() {
$chars = "abcdefghijkmnopqrstuvwxyz023456789";
srand((double)microtime()*1000000);
$i = 0;
$pass = '' ;
while ($i <= 12) {
$num = rand() % 33;
$tmp = substr($chars, $num, 1);
$pass = $pass . $tmp;
$i++;
}
return $pass;
}
// Usage
$product_names = array();
for ($i=0; $i < 100; $i++)
$product_names[] = "code-" . createRandomPassword();
?>
我的問題是,我認爲這是一個機會,這可能會重複的值,它非常重要,這並不發生,因爲我將產生其中約70萬元。
有沒有一種確保生成的字符串不重複的好方法?
謝謝:)
爲什麼要去所有這些麻煩?只需使用sha1()或md5()。同樣,您不會在循環的每次迭代中重新生成PRNG。你一次種下它,並且php在第一次調用rand()時自動爲你做。實際上,如果您正在測試並且每次都需要相同的「隨機」流,則只能手動進行種子處理。 – 2012-02-27 14:47:29