Hello,
sitze zurzeit an einen Problem und zwar möchte ich einen String zerlegen.
Bsp:
$i = "Ahg123hGnd325"
Jetzt möchte ich für jeden Einzelnen Buchstaben etwas machen (was ist egal), wichtig ist aber, dass ich mit dem wert von dem Buchstaben arbeiten kann. Zusätzlich sollen die Zahlen aber ganz bleiben.
Bsp:
$i = "Ahg123hGnd325"
for each buchstabe in $i
switch ($i)
case(a)
echo "Hallo Welt"
break
case(b)
...for each Number
$j = $j + Zahl //in dem fall einmal halt +123 und einmal +325
Ersteinmal solltest Du festlegen, ob es sich um einen "String" handelt, oder um eine Byte-Sammlung, also ein Byte-Array. Da PHP und speziell das Webumfeld inzwischen fast immer auch mit UTF-8 zu tun hat, könnten die Zeichenrepräsentationen des Strings nämlich auch mehrere Bytes für ihre Codierung benötigen.
Daher sollte Schritt 1 also ein, festzustellen, ob eine Multibyte-Codierung oder eine Singlebyte-Codierung Verwendung findet.
Mit den Stringfunktionen
http://de.php.net/manual/en/ref.strings.php
http://de.php.net/manual/en/ref.mbstring.php
speziell den Substring-Funktionen daraus, lassen sich dann einzelne Zeichen abtrennen. Diese Zeichen kannst Du dann daraufhin untersuchen, ob sie numerische oder literale Repräsentanzen sind.
Besonders kompliziert wird das dann durch Sonderzeichen, wie + und -, oder auch Klammern, die einzeln als Literale und in Verbindung mit direkt nachfolgenden Nummernzeichen dann ggf. ebenfalls als numerische Zeichen gelten müssen / ihnen zugeordnet werden müssen.
Das Ganze wird sich wohl am bequemsten mit einer Regualr Expression erledigen lassen.
http://de.php.net/manual/en/ref.pcre.php
Du wirst also nicht drum herumkommen, eine genauere Festlegung der Rahmenbedinungen vorzunehmen, bevor die Lösung der Aufgabe sinnvoll möglich ist.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg