【问题标题】:Incrementing a number with str_pad (PHP) [closed]使用 str_pad (PHP) 增加一个数字 [关闭]
【发布时间】:2014-09-08 16:40:44
【问题描述】:

我正在创建一个从 1001 开始的递增数字。如果数字变为 1001,1002,1003……当它达到 10 时,它会被格式化为 1010 还是 10010?我需要它按顺序排列并成为 1010,当它达到 100 时,1100。

$prefix = "1"; // update the prefix here

    $number = 1;
    $number++;
    $unique = str_pad($number, 3, "0", STR_PAD_LEFT);
    $unique = $prefix . $unique;

print_r($unique);

【问题讨论】:

  • 为什么不直接从1001开始呢?例如。你的用例是什么?
  • 我听不懂你在问什么

标签: php string increment


【解决方案1】:

当您的计数达到 10 时,打印的数字将为 1010。如 here 所述,str_pad“用另一个字符串将字符串 填充到一定长度”您可以使用以下内容创建测试:

$prefix = "1"; // update the prefix here

$number = 1;

for ($number = 1; $number <= 100; $number++)
{    
  $unique = str_pad($number, 3, "0", STR_PAD_LEFT);
  $unique = $prefix . $unique;    
  print($unique."\n");
 }

当您的计数达到 100 时,打印的数字将是 1100。

但是,如果您要达到 1000,则会打印 11000 - str_pad 显然不会截断字符串以匹配指定的大小。

【讨论】:

    【解决方案2】:

    它将是1010,但您可以自己轻松测试:

    $prefix = "1"; // update the prefix here
    
    $number = 9;
    $number++;
    $unique = str_pad($number, 3, "0", STR_PAD_LEFT);
    $unique = $prefix . $unique;
    
    print_r($unique);  // 1010
    

    str_pad 的第二个参数指定填充。如果 padding 为3,那么1 变为00110 变为010100 变为100

    【讨论】:

      【解决方案3】:

      使用您的代码,它将是10010

      看起来你让这变得比它需要的更复杂。为什么不从$number = 1001 开始并递增它,然后将其转换为字符串?

      $number = 1001;
      $number++;
      
      $unique = strval($number);
      
      print_r($unique);
      

      【讨论】:

      • 这实际上是我采用的方法。我知道我过于复杂了,谢谢。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-05
      相关资源
      最近更新 更多