2010-12-12 11 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

+0

@クリス、それを答えとしてマークしてください。 – mauris

+0

うん、ちょうどやった....私はそれが私をさせるまで8分待たなければならない – Chris

0

あなたがstr_pad機能を使用することができます

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

represent: what the data means. presentation: how it should look to the user. 
、あなたはここでそれを確認することができます。http://codepad.org/awXopkIQ – infinity

+0

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

+0

答えを再度更新するので、それも削除します。 – ajreal

1

MySQLを使用している場合は、

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

異なる溶液(ネット必ずしも最良のもの)のように、lpad機能を使用することができ、データベースのSMALLINT(3)符号なしZEROFILLを使用しています。データが実際にこの形式を「表す」場合、正しい解決策になる可能性があります。しかし、単にあなたの "プレゼンテーション"をこのフォーマットにしたいのであれば、おそらくそうではありません。

誰かがそれを例に働いている私の答えをダウン投票理由を私は理解できない
関連する問題