2010-12-12 37 views
1

Ich schreibe ein Skript im Moment, die das Layout in 3 numbers (000) formatiert .... Wenn ich meine SQL zurückgeben, könnten die Ergebnisse ich '1', könnte '100 sein ', könnte' 50 'sein, könnte es irgendwo zwischen 0 und 999 sein .... Wie kann ich es immer als 3-Nummern-Layout zurückgeben.PHP erzwingt eine bestimmte Reihe von Zahlen

Zum Beispiel, wenn das Ergebnis 1 zurückgibt, muss es 001 lesen, wenn es 50 zurückgibt, muss es 050 lesen und so weiter.

Antwort

8

Es gibt die sprintf() Funktion dafür:

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

So wie ein allgemeiner Tipp: Bewahren Sie das formatiert Version, es sei denn, Sie haben sehr spezifische Gründe dafür. Formatierung für die Ausgabe ist billig. Das Speichern der 'rohen' Daten ist fast immer eine bessere Wahl, falls Sie später Ihre Formatanforderungen ändern.

+0

Dang ... Das ist genau das, was ich brauche ... Danke, ein Haufen! Frieden – Chris

+0

@Chris, markieren Sie es als Antwort. – mauris

+0

Ja, habe gerade .... ich muss 8 Minuten warten, bis es mich lässt – Chris

0

können Sie verwenden, um die str_pad Funktion

Beispiel

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

Ich kann nicht verstehen, warum jemand meine Antwort nach unten gestimmt es Beispiel funktioniert, können Sie es hier ansehen: http://codepad.org/awXopkIQ – infinity

+0

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

+0

aktualisieren Sie erneut Ihre Antwort, so werde ich das auch entfernen – ajreal

1

Wenn Sie MySQL verwenden, können Sie lpad Funktion, wie

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

eine andere Lösung (net unbedingt die beste) verwendet smallint (3) unsigned zerofill in der Datenbank verwenden. Wenn Ihre Daten dieses Format wirklich "repräsentieren", könnte es eine korrekte Lösung sein. Wenn Sie jedoch möchten, dass Ihre "Präsentation" in diesem Format vorliegt, ist dies wahrscheinlich nicht der Fall.

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