我想爲文件名稱生成一個隨機的5位數字,但有例外。
如果PHP將生成例如數字65,我想要設置00065(僅5位數字)。
我有一個陣列誰包含了發電機異常:
$uploaded_files= array(00178, 49856, 32183, 02004, 01585);
在陣是誰已經存在的文件名,而數生成器是非常重要的忽略它們,以避免可能的錯誤。
謝謝。PHP - 從數組中生成一個隨機的5位數字例外
回答
考慮不re-invent the wheel,尤其是當輪在one way或another你的語言是可用的。這就是說:
/**
* Get random number outside an exception list
*
* @param array $exception Exception list
*/
function getRandom($exception=array('00001', '00002', '00003', '00004', '00005')) {
$rand=str_pad(mt_rand(0,10),5,0,STR_PAD_LEFT);
if(in_array($rand,$exception))return getRandom($exception);
return $rand;
}
var_dump(
getRandom(),
getRandom(),
getRandom(),
getRandom(),
getRandom(),
getRandom()
);
請注意,這種類型的實現真的很昂貴的碰撞真的很快,特別是如果異常列表增長。
試試這個:
//create a rand_value initially
while(in_array($rand_value, $uploaded_files) {
$rand_value = rand(0, 99999);
$rand_value = sprintf("%05s", $rand_value);
}
謝謝,我會試試這個。 – CBuzatu 2013-02-11 12:12:30
'<?php $ uploaded_files = array(01,02,03,04,05); $ rand_value = rand(0,15); $ rand_value = sprintf(「%02s」,$ rand_value); if(in_array($ rand_value,$ uploaded_files)){ \t echo'Initial random-value:'。$ rand_value。'
'; \t echo'Regenerated random-value:'; \t $ rand_value = rand(0,15); \t $ rand_value = sprintf(「%02s」,$ rand_value); } else { } echo $ rand_value; ?>' 如果'in_array'中的PHP會生成一個rand並檢查數組中的誰,我該怎麼辦?請檢查代碼。 –
CBuzatu
2013-02-11 12:24:12
我編輯了我的代碼,請看看它。 – ogzd 2013-02-11 12:35:40
- 1. 生成一個5位數字,但從MySQL表列中除外
- 2. 生成一個N位隨機數
- 3. C++:如何從一個數組中生成一個隨機數
- 4. 生成一組隨機數
- 5. 在數組中生成隨機數字
- 6. 如何從java中的數組中隨機生成一個唯一的數字
- 7. 如何在Java中生成一個隨機的9位數字?
- 8. 在php中生成隨機數字
- 9. 如何生成5秒後過期的隨機6位數字?
- 10. 從數組中隨機生成三個特定的字母
- 11. 生成一個隨機數組合成一個常數
- 12. 如何從一個數組中生成3個隨機值
- 13. 如何在Haskell中隨機生成一個隨機生成的數字列表
- 14. 如何比數組中的其他隨機數生成一個隨機數?
- 15. 生成隨機數組
- 16. 從給定數字生成隨機數
- 17. 生成不在列表中的5位數的隨機碼
- 18. 生成一個10位數字的隨機確認字符串php
- 19. 爲每個數組值生成一個唯一的隨機數
- 20. 你如何生成一個隨機的12位數字?
- 21. javascript生成一個兩位數的正數隨機數
- 22. 隨機ID /數生成PHP
- 23. 生成8位唯一隨機數
- 24. 從數組中隨機生成一個元素VB
- 25. C++生成25位數的隨機數?
- 26. 在數組中生成隨機數
- 27. 在數組中生成隨機數
- 28. 隨機數生成並隨機分配到3個數字在php中
- 29. 從數組生成隨機結果
- 30. 在隨機生成50個隨機數中使用隨機數#
你讓我微笑着重新發明輪子,但你是對的。感謝您的getRandom功能! – CBuzatu 2013-02-11 12:47:01