数字范围生成器,使用最大和最小长度以及前导零

时间:2019-04-22 07:58:22

标签: php

我有数字的最小和最大范围,需要在两个带前导零的范围之间生成数字。

示例:

$min:000001;
$max:999999;

$uname=mt_rand($min,$max);

输出:

$uname=2;

如果生成两位数然后附加四个零,那么如何设置字符串开头的动态附加零。

expected output: $uname=000002;

如果

$uname = 20;

然后

预期输出:

$uname=000020;

1 个答案:

答案 0 :(得分:0)

只需使用函数sprintf()。您可以向该函数传递格式字符串和想要输出的数字。

这是一个小例子:

$x = 7;
$y = 13;

sprintf("%03d", $x);          // 007
sprintf("%03d", $y);          // 013
sprintf("%02d", $x);          // 07
sprintf("%02d %02d", $x, $y); // 07 13

格式字符串中的“ d”代表一个整数,“ 03”表示要填充3个位。

最后两行显示了如何使用此功能填充2个位置并一次输出多个数字的示例。

您可能会感兴趣的另一个功能是str_pad()-此功能使用的是字符串而不是数字。

我们可以像下面的示例所示那样使用它:

$str = 'abc';
echo str_pad($str, 5, '.');                // '..abc'
echo str_pad($str, 5, '.', STR_PAD_RIGHT); // '..abc'
echo str_pad($str, 5, '.', STR_PAD_LEFT);  // 'abc..'
echo str_pad($str, 5, '.', STR_PAD_BOTH);  // '.abc.'
echo str_pad($str, 8, '. ');               // '. . .abc'
echo str_pad($str, 8);                     // '     abc'

该函数将字符串作为第一个参数,第二个参数是一个值,该值应为字符串的长度。

第三个可选参数是用于填充的字符或字符集。如果省略此参数,则使用空格。如果要填充的字符数不合适,则将剪切填充字符,以使其达到正确的长度。

第四个也是最后一个参数指定字符串是应右对齐(STR_PAD_RIGHT),左对齐(STR_PAD_LEFT)还是居中填充(STR_PAD_BOTH)。如果省略此参数,则该函数使用右对齐。