我需要一个 PHP 计数器函数的建议。是否有函数可以生成 5 位数字,例如 00001、00123 等等?这些数字不应该是随机的,而是要增加先前字段的值。
如果一个数字是 $n='00001',有一个函数可以将其增加一倍并获得 00002 而不是 2 吗?
谢谢 F.
$n2 = str_pad($n + 1, 5, 0, STR_PAD_LEFT);
使用str_pad()
,在旧数字$n
加1(第一个参数)的基础上,在左侧(第四个参数)添加0
(第三个参数),直到长度为5(第二个参数)。
$number = 1;
$number++;
echo str_pad($number, 5, "0", STR_PAD_LEFT); //00002
作为另一种选择,如果您感兴趣的话,可以使用 sprintf 轻松地将其填充到特定数量的0。
$numbers = array(0,1,11,111,1111,11111,11111);
$padded = array();
foreach($numbers as $num)
$padded[] = sprintf('%1$05d', ++$num);
print_r($padded);
PHP几乎总是有多种方式来完成相同的事情。 :)
你需要使用str_pad()
函数在索引前添加前导零。
$new_index = str_pad($index, 5, "0", STR_PAD_LEFT);
$index
是循环中递增的索引,$new_index
是带有前导零的索引。
$new = str_pad(ltrim($old, '0') + 1, 5, '0', STR_PAD_LEFT);
- 请注意,如果直接将带有前导零的字符串转换为整数,则可能产生您不希望得到的结果,它可能被视为八进制。不要低估 PHP 的++
自增运算符,它非常聪明,实际上可以处理字母和数字,就像 这个例子。 - DaveRandom$n = sprintf('%1$05d', $number);
- Gerald Degeneve