請在Laravel上的Project上工作,我想用這種格式生成一個隨機數字:任意位置順序的一個字符和其餘整數。例如:C87465398745635,87474M745436475,98487464655378J8等,這是我的控制器:在Laravel生成隨機數
function generatePin($number) {
$pins = array();
for ($j=0; $j < $number; $j++) {
$string = str_random(15);
$pin = Pin::where('pin', '=', $string)->first();
if($pin){
$j--;
}else{
$pins[$j] = $string;
}
}
return $pins;
}
但它似乎會產生別的事情是這樣的:ZsbpEKw9lRHqGbv,i7LjvSiHgeGrNN8,pyJEcjhjd3zu9Su我已經嘗試了所有我可以,但沒有成功,請任何像你說的解決方案,幫助將感激,謝謝
感謝這個作品,給我這些的結果:F2360463118,54475708163,8N182992222,4629231O991,1V387422817但缺什麼,我的看法是:1.這裏的第二個生成的數字(54475708163)沒有任何Alpha字符,這可能意味着某些會添加Alpha字符,而有些則不會是不好的或內聯的,2.我希望數字爲14數字和一個字母使它完全代替了我們在這裏的9個數字和1個Alpha字符,總共15個謝謝,我真的非常感謝! – kacyblack
3.請我希望這種方法不會允許重複每個生成的數字,因爲這些生成的數字將同時發送給不同的人,如果重複,則會有用戶給定生成的數字的衝突。請問mt_rand有多安全,並且數字會在哪個間隔重複一次?謝謝 – kacyblack
我已經更新了答案。至於你的意見: 1.對不起,這是真的。我像你一樣使用Laravel的'str_random'函數,該函數生成一個隨機字母數字字符串。 2.對不起,更正了更新後的答案。 3.我會說這種方法不可能產生相同的值,但它是可能的。如果你想要一個真正安全的發電機,我建議你看看這個功能http://php.net/manual/en/function.openssl-random-pseudo-bytes.php –