2010-12-12 52 views
1

即時編寫腳本,此時需要將佈局格式化爲3 numbers (000) ....當我返回我的SQL時,我得到的結果可能是'1',可能是'100 ',可能是'50',它可能在0到999之間的任何地方....我怎樣才能讓它返回爲3號碼布局。PHP強制一組特定的數字

例如,如果結果返回1,則需要讀取001,如果返回50則需要讀取050,依此類推。

回答

8

還有的sprintf()功能爲:

$formatted_decimal = sprintf('%03d', $unformatted_decimal); 
# 1 -> 001, 10 -> 010, etc... 

就像一般的提示:請勿將格式化除非你有非常具體的理由這樣做。格式化輸出很便宜。存儲「原始」數據幾乎總是一個更好的選擇,以備日後更改格式要求。

+0

Dang ...那正是我需要的......感謝一堆!和平 – Chris 2010-12-12 15:08:52

+0

@Chris,將其標記爲答案。 – mauris 2010-12-12 15:17:12

+0

是的,只是沒有....我必須等待8分鐘,直到它讓我 – Chris 2010-12-12 15:22:06

0

可以使用str_pad功能

str_pad($number, 3, "0", STR_PAD_LEFT); 
+0

我不明白爲什麼有人向下投我的回答它的工作例如,您可以點擊此處查看:http://codepad.org/awXopkIQ – infinity 2010-12-12 15:20:32

+0

http://stackoverflow.com/revisions/de791a0d- a696-439f-8f4b-58135d1bea64/view-source – ajreal 2010-12-12 15:26:10

+0

再次更新你的答案,所以,我將刪除它以及 – ajreal 2010-12-12 15:26:38

1

如果你正在使用MySQL,你可以使用lpad功能,如

select lpad(1, 3, 0); 
select lpad(id, 3, 0) as padded_id from ...; 
0

不同的解決方案(淨不一定是最好的之一)在數據庫中使用SMALLINT(3)無符號ZEROFILL。如果您的數據真的「代表」了這種格式,那麼這可能是一個正確的解決方案。但是,如果你只是想讓你的「演示文稿」採用這種格式,那很可能不是。

represent: what the data means. 
presentation: how it should look to the user.