使用php和整数值进行printf格式化

时间:2012-08-02 23:47:38

标签: php printf

我试图使用printf进行格式化,但我意识到当我使用%d时,我不能将0用于-对齐的填充说明符。这是我正在尝试做的事情:

    $a = sprintf("%04d",5);
    $b = sprintf("%'1-4d",5); 
    $c = sprintf("%0-4d",5); 
    $d = sprintf("%0-4s",5); 

    var_dump($a);//outputs 0005

    var_dump($b);//outputs 5111

    var_dump($c);//outputs 5(and 4 spaces) why not 5000?

    var_dump($d);//outputs 5000

1 个答案:

答案 0 :(得分:0)

我认为PHP正试图在这里为你考虑。

如果你用5个字符填充0,你怎么能区分它和50000?或者在5右边填充四个0字符和50右边填充三个0字符之间?

我没有PHP方便测试,但如果您尝试使用格式"%'0-4d"来说服它做你想做的事情会怎么样?