Zahlen mit führenden Nullen in PHP: Einfache Lösung

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Wie verwandelt man „1“ in „001“ in PHP? Komplette Anleitung mit Code

\n\n

Kennst du die Situation: Du möchtest die Zahl 7 ausgeben, aber der Kunde (oder die Datenbank) verlangt 007? Oder du erstellst eine Bestellnummer: 42 → 00042? Oder du arbeitest mit Datumsangaben, bei denen der Monat zweistellig sein muss: 1 → 01?

\n\n

Willkommen in der Welt der führenden Nullen (leading zeros) in PHP. Das ist eine dieser Aufgaben, die einfach erscheint, aber viele Fallstricke bereithält. In diesem Artikel zeigen wir dir alle Methoden, um Nullen vor eine Zahl zu setzen, vergleichen ihre Performance und erklären, wann du welche Methode einsetzen solltest.

\n\n

Dieser Artikel richtet sich an Anfänger und erfahrene Entwickler. Wir kopieren nicht einfach eine Antwort von Stack Overflow, sondern erklären jedes Beispiel Schritt für Schritt. Los geht's!

\n\n

Warum braucht man überhaupt führende Nullen?

\n\n

Führende Nullen sind Nullen, die vor den signifikanten Ziffern einer Zahl stehen. Zum Beispiel 007 statt 7. Im echten Leben werden sie benötigt für:

\n\n
    \n
  • Formatierung von Nummern: Bestellungen, Rechnungen, Invoices. „Bestellung Nr. 0001“ wirkt professioneller als „Bestellung Nr. 1“.
  • \n
  • Sortierung: In Dateisystemen und Datenbanken führt eine String-Sortierung von „1“, „10“, „2“ zur falschen Reihenfolge. „01“, „02“, „10“ hingegen ist korrekt.
  • \n
  • Datum und Uhrzeit: 2023-01-05 ist der ISO-8601-Standard. Ohne führende Null würde der Tag oder Monat „5“ das Format zerstören.
  • \n
  • APIs und Protokolle: Viele APIs verlangen eine feste Feldlänge.
  • \n
\n\n

PHP hat keine eingebaute „Mach's-schön“-Funktion – aber es gibt mehrere mächtige Werkzeuge, die wir jetzt kennenlernen.

\n\n

Methode 1: sprintf – der König der Formatierung

\n\n

Die beliebteste Methode, die du auch auf Stack Overflow findest, ist die Funktion sprintf(). Sie stammt aus der Sprache C und kann Strings nach einem Muster formatieren.

\n\n

Wie funktioniert das?

\n\n

Syntax: sprintf(Format, Variable). Das Format wird durch spezielle Platzhalter definiert, die mit % beginnen. Für Zahlen mit führenden Nullen verwendest du %0Nd, wobei N die Gesamtlänge des Strings und d der Datentyp (ganze Zahl) ist.

\n\n
<?php\n$number = 7;\n$formatted = sprintf("%03d", $number);\necho $formatted; // Ausgabe: 007\n?>
\n\n

Die Zeichen im Detail:

\n
    \n
  • % – Beginn des Platzhalters
  • \n
  • 0 – Füllzeichen für leere Stellen (Null)
  • \n
  • 3 – Gesamtlänge des Ergebnis-Strings
  • \n
  • d – Ganze Zahl (decimal)
  • \n
\n\n

Ist die Zahl länger als die angegebene Länge, gibt sprintf sie einfach unverändert aus:

\n\n
<?php\necho sprintf("%03d", 12345); // Ausgabe: 12345 (keine Kürzung!)\n?>
\n\n

Arbeiten mit Dezimalzahlen

\n\n

Und wenn die Zahl keine ganze Zahl ist? Zum Beispiel 3.14 als 003.14 ausgeben? Dafür verwenden wir %0N.f:

\n\n
<?php\n$float = 3.14;\necho sprintf("%06.2f", $float); // Ausgabe: 003.14\n// 6 = Gesamtlänge, 2 = Anzahl Nachkommastellen\n?>
\n\n

Wichtig: sprintf verändert die ursprüngliche Variable nicht, sondern gibt einen neuen String zurück. Wenn du direkt ausgeben möchtest, verwende printf() (ohne das 's').

\n\n

Methode 2: str_pad – der universelle „Auffüller“

\n\n

Die zweitbeliebteste Methode ist die Funktion str_pad(). Sie ist nicht speziell für Zahlen gemacht, funktioniert aber hervorragend mit Strings. Und eine Zahl wird in PHP ganz einfach zu einem String.

\n\n
<?php\n$number = 42;\n$formatted = str_pad($number, 5, "0", STR_PAD_LEFT);\necho $formatted; // Ausgabe: 00042\n?>
\n\n

Parameter:

\n
    \n
  1. Eingabe-String
  2. \n
  3. Ziel-Länge des Strings
  4. \n
  5. Füllzeichen (hier „0“)
  6. \n
  7. Füllrichtung: STR_PAD_LEFT (links), STR_PAD_RIGHT (rechts) oder STR_PAD_BOTH (beidseitig)
  8. \n

Blogs

Buchempfehlungen