2010-07-31 111 views
3

我正在嘗試使用php生成一個9位數字,它不以0開頭,並且每隔三位用破折號隔開。如何生成一個9位數字

例如102-394-458

我也在討論是否

  • 將其保存爲數字或做的格式在前端
  • 或將其存儲爲數字並做格式化上後端
  • 或只是存儲在數據庫中的破折號以及

當然的選擇將影響如何產生的數量。

回答

15
implode('-',str_split(rand(100000000,999999999),3)) 

一般情況下,它可能會更好簡單地存儲爲一個數字,並與格式化 - 使用number_format()僅用於顯示目的

+0

折騰mt_rand,這是一個雙贏。 – cbednarski 2010-07-31 21:34:51

+0

@banzaimonkey - 是的,應該使用mt_rand(),但即使rand()也應該用於此目的 – 2010-07-31 21:41:30

3

生成1到9之間的隨機數。 生成0到9之間的8個隨機數。 將它們組合成一個字符串,並在需要的地方添加破折號。

4

的前端。將其格式化存儲意味着如果您想要對其進行任何操作(需要它是一個數字),則必須對其進行「格式化」。

產生這樣一個數量的方法是:

$number = mt_rand(100000000,999999999); 

您可以使用number_format這樣的:

echo number_format($number,0,"","-"); 
+0

巧妙地使用number_format() – 2010-07-31 21:47:44

3

你應該保存在你的數據庫的無符號整數,格式上顯示(但仍然在服務器端,如果這是你的意思後端)

要生成號碼使用

mt_rand(100000000, 999999999); 

要顯示使用:

wordwrap($number, 3, '-', true); 
相關問題