如何生成9位数字

时间:2010-07-31 21:26:19

标签: php random

我正在尝试使用php生成一个不以0开头的9位数字,并且每隔三个数字用短划线分隔。

e.g。 102-394-458

我也在讨论是否

  • 将其存储为数字或在前端进行格式化
  • 或将其存储为数字并在后端进行格式化
  • 或者只是将破折号存储在数据库中

当然,选择会影响数字的生成方式。

4 个答案:

答案 0 :(得分:16)

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

通常情况下,最好只是将其存储为数字,并将其格式化为 - 仅用于显示目的

答案 1 :(得分:5)

在前端使用number_format()。将其格式化存储意味着如果要对其执行任何需要它的操作,则必须“解格”它。

生成这样一个数字的方法是:

$number = mt_rand(100000000,999999999);

您可以像这样使用number_format:

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

答案 2 :(得分:3)

生成1到9之间的随机数。 生成0到9之间的8个随机数。 将它们组合成一个字符串,在需要的地方添加破折号。

答案 3 :(得分:3)

您应该在数据库和格式中保存为无符号整数(但仍然在服务器端,如果这是后端的含义。)

要生成数字,请使用

mt_rand(100000000, 999999999);

显示用途:

wordwrap($number, 3, '-', true);