在PHP中的数字前添加空格

时间:2010-08-12 08:57:39

标签: php string-formatting padding

如何在PHP中的数字之前添加空格,以获得如下输出?

   9      
  10
 100

我正在使用str_pad($k,3,'',STR_PAD_LEFT),但空格不起作用。我不想要前导零,但我想要空格。

5 个答案:

答案 0 :(得分:6)

您可能正在寻找str_pad()

foreach (array(1,2,3,100,1000) as $number)
 echo str_pad($number, 10, " ", STR_PAD_LEFT);

但是,如果要以HTML格式输出,则多个空格将转换为一个。在这种情况下,请使用 作为第三个参数。

此外,如果您使用像Times或Arial这样的字体,这将永远不会产生完全精确的结果,因为字符的宽度不同。要获得完美的结果,您需要使用像Courier这样的Monospace字体。

无论如何,请先查看@Mark Ba​​ker的回答。在大多数情况下,使用CSS text-align: right右对齐数据是最佳解决方案。

答案 1 :(得分:4)

如果您在网络浏览器中显示结果,那么您应该知道浏览器有这种令人讨厌的倾向,即将多个空格转换为单个空格。要检查代码是否正常工作,请使用浏览器的“查看源”选项并计算实际源中的空格而不是渲染显示。

然后查看 等替代方案或使用CSS右对齐您的值。

答案 2 :(得分:1)

打印数字时:

printf("%5d\n", $number);

5替换为您想要的最小宽度空间。

答案 3 :(得分:0)

为此目的使用函数str_pad

答案 4 :(得分:0)

这是您要寻找的:

str_replace(" "," ",str_pad($number, 5,'   ', STR_PAD_LEFT));

grml,请看一下我的评论。我不知道为什么 nbsp :)不见了