我正在尝试使用 php 生成一个 9 位数字,该数字不以 0 开头,并且每隔三个数字用破折号分隔。
例如102-394-458
我也在争论是否
当然,选择会影响数字的生成方式。
implode('-',str_split(rand(100000000,999999999),3))
一般来说,最好简单地存储为数字,并使用 - 对其进行格式化,仅用于显示目的
在前端使用 number_format()。将其格式化存储意味着如果您想使用它执行任何需要它是数字的操作,则必须“取消格式化”它。
生成这样一个数字的方法是:
$number = mt_rand(100000000,999999999);
您可以像这样使用 number_format:
echo number_format($number,0,"","-");
您应该在数据库中保存为无符号整数并在显示时格式化(但仍然在服务器端,如果这就是您所说的后端。)
要生成号码,请使用
mt_rand(100000000, 999999999);
显示用途:
wordwrap($number, 3, '-', true);
生成 1 到 9 之间的随机数。 生成 0 到 9 之间的 8 个随机数。 将它们组合成一个字符串,在需要的地方添加破折号。
A).
implode('-',str_split(rand(100000000,999999999),3))
“一般来说,最好简单地存储为数字,并使用 - 仅用于显示目的进行格式化” - Mark Baker
B)。 “在前端使用
number_format()
。将其格式化存储意味着如果您想使用它执行任何需要它是数字的操作,则必须对其进行“取消格式化”。
生成这样一个数字的方法是:
$number = mt_rand(100000000,999999999);
您可以像这样使用 number_format:
echo number_format($number,0,"","-");
C)。 “您应该在数据库中保存为无符号整数并在显示时格式化(但仍然在服务器端,如果这就是您所说的后端。)”
要生成号码,请使用
mt_rand(100000000, 999999999);
显示用途:
wordwrap($number, 3, '-', true);
我唯一能给出的答案是“D!以上都是!” 所有的答案都非常正确,确实没有“一种方法”