2010-08-12 72 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