2012-08-08 50 views

回答

13
$random = sprintf("%02f", rand(0,29)); 

,或者如在評論中提到:

$random = str_pad(rand(0,29), 2, "0", STR_PAD_LEFT); 
+0

我會做那sprintf而不是spintf;) – snaderss 2012-08-08 13:45:35

+3

+1擊敗我。 'str_pad()'也是一個不錯的選擇。在這種情況下,比'* printf()'技術要少一些。 – 2012-08-08 13:45:47

+0

它給我:0.00,1.00,2.00 ...不是00,01,02 ...這裏有什麼缺失嗎? – 2012-08-08 13:48:22

0

a)將一個 「0」,如果值IST低於10

b)利用number_format處理輸出

1

創建一個類似於

$array = array('00','01','02','03'....,'29'); 
echo $array[array_rand($array)]; 
+2

+1用於提供替代方案。雖然相當*醜*解決方案:) – 2012-08-08 13:48:09

+0

@JasonMcCreary我同意。這是一個醜陋的解決方案。 – 2012-08-08 13:51:57

+0

是的,它會工作,但只是不這樣做:) – 2016-04-01 10:18:42

0

您可以使用sprintf格式化數字。

$number = rand(0,29); 
$number = sprintf("%02d", $number); 

搜索sprintf的PHP手冊

1

使用str_pad

$random = str_pad(rand(0, 29), 2, '0', STR_PAD_LEFT); 
+1

+1''str_pad()'。 – 2012-08-08 13:48:26

0

您也可以採用此方法,不依賴於附加功能:

$n = rand(0, 29); 
if($n < 10) $n = "0" . $n; 
+0

是的這項工作。但是,當本地函數存在時很愚蠢。爲什麼在他們身邊編碼[成爲一名更好的PHP開發人員](http://jason.pureconcepts.net/2012/08/better-php-developer/)。 – 2012-08-08 13:51:13