2010-08-12 31 views
0

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

 9   
    10 
100 

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

+0

您可以添加一些关于您想要实现的功能和示例的更多详细信息吗? – 2010-08-12 08:59:03

+0

#9 #10 #100 print this like – anuradha 2010-08-12 08:59:59

+0

你的str_pad没有空间。 – fabrik 2010-08-12 09:06:03

回答

6

您可能正在寻找str_pad()

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

但是,如果您希望以HTML格式输出,则多个空格将被转换为一个。在这种情况下,请使用 作为第三个参数。另外,如果使用像Times或Arial这样的字体,由于字符的宽度不同,因此不会产生完全准确的结果。为了获得完美的结果,您需要使用像Courier这样的等宽字体。

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

+0

+1用于浏览器空间减少 – 2010-08-12 09:10:15

+0

meh。 @Mark Ba​​ker给出了正确的答案:用CSS来做。至少你并没有建议使用'printf'和family。 – aaronasterling 2010-08-12 09:12:57

+0

但我得到#&n1#&n2与  – anuradha 2010-08-12 09:39:18

1

当打印的数字:

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

更换5你想要多少空间宽度最小。

4

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

然后查看诸如 之类的替代方案或使用CSS将您的值右对齐。

+0

+1 for css mentioned。这是一个表象问题,而不是PHP问题.CSS是正确的,__easy__处理这个问题的方法。 – aaronasterling 2010-08-12 09:11:57

相关问题