如何生成9位数字

zap*_*lin 3 php random

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

例如102-394-458

我也在辩论是否

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

当然,选择将影响数字的生成方式.

Mar*_*ker 16

implode('-',str_split(rand(100000000,999999999),3))
Run Code Online (Sandbox Code Playgroud)

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


Vin*_*vic 5

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

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

$number = mt_rand(100000000,999999999);
Run Code Online (Sandbox Code Playgroud)

您可以像这样使用number_format:

echo number_format($number,0,"","-");
Run Code Online (Sandbox Code Playgroud)