11 Stimme

PHP: Erste Stelle von Zahl oder String auslesen

Tutorial von Anja Proggy | 07.02.2014 um 15:38

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 des Strings bestimmen. Weiß jemand, wie das geht?

Strings

Einen String kannst du 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.

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.

AntwortenPositivNegativ

Über den Autor

AvatarDer Autor hat keine Kurzbeschreibung seines Profils angegeben.
Profil anzeigen

 

Ähnliche Themen

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.