PHP Führende 0 abschneiden?

Dsimon24

Lieutenant
Registriert
Aug. 2016
Beiträge
595
Hallo zusammen,

ich möchte gerne Postleitzahlen vergleichen.

Wenn eine PLZ zwischen 11111 und 11119 liegt, dann bspw $x = 1;

Das würde ich dann so realisieren:
PHP:
if ($plz >= 11111 && $plz <=19999) { $x = 1; }

So, wie mache ich das aber mit dern '0', wenn die PLZ

zwischen 00000 und 09999 liegt?

VG, David
 
PLZ als String und nicht als Zahl ansehen.
 
Würde mich stark wundern, wenn PHP keine Strings vergleichen kann. Ist im Grunde ja nichts anderes als Strings sortieren.
 
Wenn die PLZen mit führenden 0-en vorliegen, sind sie wohl eh Zeichenketten (Strings) und lassen sich nicht mit <19999 vergleichen, (zumindest würde ich mich nicht drauf verlassen).
Was etwa ist mit dem Fall: "01000" > "1000"?

Soll heißen,
- erst in Ganzzahl (etwa Integer) konvertieren,
- dann verschwinden die führenden 0-en,
- damit kannst du dann vergleichen,
- und evt weitere Berechnungen anstellen.

siehe: php.net - intval
 
Zuletzt bearbeitet:
Mr_Bishop schrieb:
Soll heißen,
- erst in Ganzzahl (etwa Integer) kovertieren,
- dann verschwinden die führenden 0-en,
- damit kannst du dann vergleichen,
- und evt weitere Berechnungen anstellen.

siehe: php.net - inval

Das war auch mein erster Gedanke.
Aber wenn ich bspw. 01234 in ein Int umwandle
PHP:
$m = intval(01234);
Erhalte ich 668, wenn ich den Wert $m ausgabe.
 
Laut Beschreibung, beachte Hinweis: Führende "0x" oder "0" führen zur Interpretation zur Basis 16 oder 8.
Probiere es mal mit intval(string, 10); aus, String interpretieren zur Basis 10 erzwingen.
 
Du wandelst nicht 01234 in einen int um, sondern du wandelst 668 in einen int um. "01234" ist ein String, 01234 eine Oktalzahl. Auch PHP versteht unter Nummern mit führender 0 eine Oktalzahl, genauso wie 0x Hexadezimalzahlen sind.

Und bitte verwende Casts, statt diesen *val() Müll. intval hat nur einen sinnvollen Zweck: Wenn du die Basis umrechnen willst.
 
setz die PLZ-Grenzen in Anführungszeichen:
Code:
if ($plz >= '00000' && $plz <= '09999') { $x = 1;}
Ansonsten werden die Zahlen, wie schon mehrmals erwähnt, als anderes Zahlensystem interpretiert
 
Zurück
Oben