答案 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 Baker的回答。在大多数情况下,使用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 :)不见了