PHP: Erste Stelle von Zahl oder String auslesen
Tutorial von Stefan Trost | Letztes Update am 30.12.2022 | Erstellt am 07.02.2014
Frage: Ich habe einige Zahlen und Strings und möchte nun mit der Hilfe von PHP die erste Ziffer der Zahl beziehungsweise die erste Stelle (das erste Zeichen) des Strings bestimmen. Weiß jemand, wie das geht?
Strings
Einen String kannst du prinzipiell so wie einen Array behandeln, um die erste Stelle aus zu lesen:
$s = '123'; $a = $s[0]; echo $a; // 1
Also einfach die eckigen Klammern benutzen. Die erste Stelle ist dabei die 0, die zweite die 1 und so weiter.
Vorsicht ist hier allerdings geboten, falls der String Zeichen außerhalb des ASCII-Ranges enthält, also Zeichen die mehr als ein Byte einnehmen, da diese Art von Zugriff byteweise erfolgt. Mit Strings, die nur Zahlen oder Buchstaben im Bereich A-Z und a-z enthalten gibt es mit dieser Methode also keine Probleme, jedoch falls wir Umlaute oder andere Multibyte-Zeichen verwenden.
Zahlen
Hast du als Variable eine Zahl, funktioniert das mit den eckigen Klammern allerdings nicht. Mir fallen spontan drei Möglichkeiten ein, wie man es machen könnte:
// Möglichkeit 1 $k = 123; $s = $k.''; // oder: $s = (string)$k; $a = $s[0]; echo $a; // 1 // Möglichkeit 2 $k = 123; $a = floor($k/100); echo $a; // 1 // Möglichkeit 3 $k = 123; $a = substr($k, 0, 1); echo $a; // 1
Die erste Möglichkeit ist es, die Zahl vorher in einen String umzuwandeln und dann vorzugehen, wie bei einem String. Das geht zum Beispiel indem man der Variable einfach einen leeren String anhängt oder über einen Type-Cast, indem wir (string) vor die Variable schreiben (mehr über Typumwandlungen).
Die zweite Möglichkeit lässt die Variable eine Zahl sein. Wir teilen die 123 einfach durch 100, erhalten 1,23 und schneiden mit floor() die Stellen hinter dem Komma ab. Diese Vorgehensweise setzt natürlich voraus, dass wir die Anzahl der Stellen der Zahl kennen oder diese vorher ermitteln müssten. Bei einer zweistelligen Zahlen müssten wir entsprechend durch 10 teilen, bei einer vierstelligen Zahl durch 1000.
Die dritte und letzte Möglichkeit, die ich vorstellen möchte arbeitet mit substr(). Dies ist eine PHP-Funktion, die Teil eines Strings zurückgeben kann. Der erste übergebene Parameter ist die Variable, der zweite der Startpunkt, der dritte die Länge. In unserem Beispiel können wir direkt eine Zahl als Variable übergeben, da substr() für uns die Typumwandlung durchführt. Da uns die erste Stelle interessiert, beginnen wir mit 0 und schneiden nur eine Länge von 1 für das erste Zeichen ab.
Über den Autor
Software von Stefan Trost finden Sie auf sttmedia.de. Benötigen Sie eine individuelle Software nach Ihren eigenen Wünschen? Schreiben Sie uns: sttmedia.de/kontakt
Profil anzeigen
Ähnliche Themen
PHP: Strings mit Ctype-Funktionen auf Zeichenklassen überprüfen
Artikel | 0 Kommentare
PHP: Nur bestimmte Buchstaben, Zahlen und Zeichen in einem String zulassen
Tipp | 10 Kommentare
PHP: Beliebige Zeichen am Anfang und Ende eines Strings entfernen
Tutorial | 0 Kommentare
JavaScript: Letztes Zeichen aus String entfernen
Tipp | 0 Kommentare
MySQL: Zeilenumbrüche in MySQL
Tipp | 0 Kommentare
Android Programmierung: Response von HTTP POST Request empfangen
Tutorial | 3 Kommentare
PHP: Integer-Variable in String-Variable umwandeln
Tutorial | 0 Kommentare
Wichtiger Hinweis
Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.
Jetzt mitmachen
Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.