代码之家  ›  专栏  ›  技术社区  ›  Karthik

PHP中的数字表示问题

  •  0
  • Karthik  · 技术社区  · 15 年前

    这是一件简单的事情,但我没有得到答案。

    我生成的自动生成ID与100001年、100002年类似,在这10年中,0001年是自动生成编号。当我拆分年份和数字时,加一个值为2表示0.001。但我需要AS 0002。

    Adding value is 0001+1, 0002+1, 0010+1, 0099+1
    
    Now the answer are 2, 3, 11, 100 like that
    
    But i need like that 0002,0003,0011,0100
    

    事先谢谢。

    3 回复  |  直到 15 年前
        1
  •  4
  •   Piotr Pankowski    15 年前
    $var = sprintf ('%04d', $var);
    

    sprintf manual .

        2
  •  1
  •   Brent Baisley    15 年前

    0001不是数字,而是字符串。当您向它添加1时,php会将它转换为一个数字(1),然后向它添加1,最后得到2。您要做的是用0填充数字,将其转换回字符串。你可以使用sprintf,正如其他人所建议的,或者str_pad。

    str_pad(1, 4, '0', STR_PAD_LEFT);
    
        3
  •  0
  •   edwin    15 年前

    您可以使用旧的sprintf来格式化数字。

    $a = 1;
    $f = sprintf("%06s", $a);
    echo $f;
    

    应打印“000001”。

    文档: http://php.net/manual/en/function.sprintf.php