我正在嘗試使用php生成一個9位數字,它不以0開頭,並且每隔三位用破折號隔開。如何生成一個9位數字
例如102-394-458
我也在討論是否
- 將其保存爲數字或做的格式在前端
- 或將其存儲爲數字並做格式化上後端
- 或只是存儲在數據庫中的破折號以及
當然的選擇將影響如何產生的數量。
我正在嘗試使用php生成一個9位數字,它不以0開頭,並且每隔三位用破折號隔開。如何生成一個9位數字
例如102-394-458
我也在討論是否
當然的選擇將影響如何產生的數量。
implode('-',str_split(rand(100000000,999999999),3))
一般情況下,它可能會更好簡單地存儲爲一個數字,並與格式化 - 使用number_format()僅用於顯示目的
生成1到9之間的隨機數。 生成0到9之間的8個隨機數。 將它們組合成一個字符串,並在需要的地方添加破折號。
的前端。將其格式化存儲意味着如果您想要對其進行任何操作(需要它是一個數字),則必須對其進行「格式化」。
產生這樣一個數量的方法是:
$number = mt_rand(100000000,999999999);
您可以使用number_format這樣的:
echo number_format($number,0,"","-");
巧妙地使用number_format() – 2010-07-31 21:47:44
你應該保存在你的數據庫的無符號整數,格式上顯示(但仍然在服務器端,如果這是你的意思後端)
要生成號碼使用
mt_rand(100000000, 999999999);
要顯示使用:
wordwrap($number, 3, '-', true);
折騰mt_rand,這是一個雙贏。 – cbednarski 2010-07-31 21:34:51
@banzaimonkey - 是的,應該使用mt_rand(),但即使rand()也應該用於此目的 – 2010-07-31 21:41:30