Php 如何生成9位数字

Php 如何生成9位数字,php,random,Php,Random,我试图使用php生成一个9位数的数字,它不是以0开头,而是每隔三个数字用破折号分隔 e、 g.102-394-458 我也在争论是否 将其存储为数字或在前端进行格式化 或者将其存储为数字并在后端进行格式化 或者也可以将破折号存储在数据库中 当然,选择将影响数字的生成方式 生成一个介于1和9之间的随机数。 生成8个介于0和9之间的随机数。 将它们组合成一个字符串,在需要的地方添加破折号 implode('-',str_split(rand(100000000,999999999),3)) 一

我试图使用php生成一个9位数的数字,它不是以0开头,而是每隔三个数字用破折号分隔

e、 g.102-394-458

我也在争论是否

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

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

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

implode('-',str_split(rand(100000000,999999999),3))
一般来说,最好只存储为一个数字,并在前端使用-仅用于显示目的。将其格式化存储意味着,如果要对其执行任何要求其为数字的操作,则必须对其进行“变形”

生成此类数字的方法是:

$number = mt_rand(100000000,999999999);
您可以使用如下数字格式:

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

您应该在数据库中另存为无符号整数,并在显示时格式化(但仍在服务器端,如果这是后端的意思的话)

要生成数字,请使用

mt_rand(100000000, 999999999);
要显示或使用:

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

投上mt_rand,这是一场胜利。@banzaimonkey-是的,应该使用mt_rand(),但即使是rand()也应该达到这个目的