【问题标题】:Convert 1 to 001 , 2 to 002 etc and 99 to 099 etc in php [duplicate]在php中将 1 转换为 001 ,将 2 转换为 002 等,将 99 转换为 099 等 [重复]
【发布时间】:2015-12-13 23:33:48
【问题描述】:

我有从 0 到 999 的数字,并希望以给定的格式打印

0   : 000
1   : 001
2   : 002
.
.
.
.
11  : 011
99  : 099
.
.
111 : 111
999 : 999

什么结束号码是 9999 那么号码长度应该是 4 像(0000 , 0001 , 0022 , 0999 等)
最好的方法是什么

【问题讨论】:

  • 你会在这里得到答案:stackoverflow.com/questions/1699958/…
  • 需要事先手动“找到最大号码长度”,这取决于号码的处理方式和/或存在哪些其他信息。 log(对数)函数在这种情况下可能很有用。

标签: php


【解决方案1】:

使用printf()sprintf()

$variable=3;
echo sprintf("%'03d", $variable);

一个可选的填充说明符,说明将使用什么字符将结果填充到正确的字符串大小。这可能是空格字符或 0(零字符)。默认是用空格填充。可以通过在其前面加上单引号 (') 来指定备用填充字符。请参阅下面的示例。

【讨论】:

  • 或者sprintf,如果你想返回字符串而不是打印它。
【解决方案2】:

试试str_pad($n, 3, '0', STR_PAD_LEFT),$n 是你的号码

【讨论】:

    【解决方案3】:

    你可以使用这个功能:

    function formatNbr($nbr){
    if ($nbr < 10)
        return "00".$nbr;
    elseif ($nbr >= 10 && $nbr < 100 )
        return "0".$nbr;
    else
        return strval($nbr);
    }
    

    【讨论】:

      【解决方案4】:
      echo sprintf("%0".strlen($number)."d" , $number); 
      

      【讨论】:

        猜你喜欢
        • 2010-12-06
        • 1970-01-01
        • 1970-01-01
        • 2016-05-21
        • 1970-01-01
        • 2017-02-27
        • 2021-06-29
        • 1970-01-01
        • 2017-08-03
        相关资源
        最近更新 更多