PHP生成00 - 29之间的随机数[重复]
Posted
技术标签:
【中文标题】PHP生成00 - 29之间的随机数[重复]【英文标题】:PHP Generate Random Number Between 00 - 29 [duplicate] 【发布时间】:2012-08-05 15:24:23 【问题描述】:可能重复:Formatting a number with leading zeros in php
我的值介于 00 - 29 之间,需要使用 PHP 随机选择。 我尝试使用 rand() 函数,但它给了我 0 - 29。而不是 00、01、02、03 ... 等等。
如何从 PHP 中随机获取 00 - 09 而不是 0 - 9?谢谢。
【问题讨论】:
【参考方案1】:$random = sprintf("%02f", rand(0,29));
或者,如 cmets 中所述:
$random = str_pad(rand(0,29), 2, "0", STR_PAD_LEFT);
【讨论】:
我会用 sprintf 而不是 spintf ;) +1 打败我。str_pad()
也是一个不错的选择。在这种情况下,技术比 *printf()
少一点。
它给了我:0.00, 1.00, 2.00... 不是 00, 01, 02... 这里有什么遗漏吗?
更新了答案以显示str_pad()
(杰森好点)并修复了小数错误
他的sprintf()
格式错误,请参阅更新。 (告诉你这是技术性的:)【参考方案2】:
使用str_pad:
$random = str_pad(rand(0, 29), 2, '0', STR_PAD_LEFT);
【讨论】:
【参考方案3】:创建一个类似的数组
$array = array('00','01','02','03'....,'29');
echo $array[array_rand($array)];
【讨论】:
+1 用于提供替代方案。虽然相当 丑 解决方案:) @JasonMcCreary 我同意。这是一个丑陋的解决方案。 是的,它会起作用,但不要那样做:)【参考方案4】:a) 如果值低于 10,则添加“0”
b) 使用 number_format 处理输出
【讨论】:
【参考方案5】:您可以使用 sprintf 来格式化数字。
$number = rand(0,29);
$number = sprintf("%02d", $number);
在 PHP 手册中搜索 sprintf
【讨论】:
【参考方案6】:您也可以使用这种不依赖附加功能的方法:
$n = rand(0, 29);
if( $n < 10 ) $n = "0" . $n;
【讨论】:
是的,这项工作。但是当存在本机函数时很愚蠢。为什么要围绕它们编写代码? Be a better PHP developer.以上是关于PHP生成00 - 29之间的随机数[重复]的主要内容,如果未能解决你的问题,请参考以下文章