我有数字的最小和最大范围,需要在两个带前导零的范围之间生成数字。
示例:
$min:000001;
$max:999999;
$uname=mt_rand($min,$max);
输出:
$uname=2;
如果生成两位数然后附加四个零,那么如何设置字符串开头的动态附加零。
expected output: $uname=000002;
如果
$uname = 20;
然后
预期输出:
$uname=000020;
答案 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)。如果省略此参数,则该函数使用右对齐。