12

我需要一个关于 php 计数器功能的建议。是否有任何函数可以将 5 位数字作为 00001 或 00123……这个数字应该不是随机的,但必须增加前一个字段的值。

如果一个数字是 $n='00001' 有一个函数加一并得到 00002 而不是 2?

谢谢 F。

4

4 回答 4

31
$n2 = str_pad($n + 1, 5, 0, STR_PAD_LEFT);

通过str_pad()0s(第三个参数)添加到旧数字的左侧(第四个$n参数)以递增1第一个参数)直到长度为 5(第二个参数)来使用。

于 2012-05-26T20:56:15.880 回答
4
$number = 1;
$number++;
echo str_pad($number, 5, "0", STR_PAD_LEFT);  //00002
于 2012-05-26T20:57:51.223 回答
4

作为替代方案,如果您有兴趣,可以使用 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 几乎总是有很多方法来做同样的事情。:)

于 2012-05-26T21:04:12.957 回答
2

您需要str_pad()将前导零添加到索引的函数。

$new_index = str_pad($index, 5, "0", STR_PAD_LEFT);

圆圈中$index的递增索引$new_index是带有前导零的索引。

于 2012-05-26T20:56:18.397 回答