• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

PHP String parsen

lescha

New member
Abend Zusammen
komme leider nicht weiter mit diesem Problem
ich habe folgendes String
$s = "Frage*Krankheit a#Krankheit b#Krankheit c#Krankheit d*Allergie1#Allergie2#Allergie3#Allergie4*Tag#Monat#Jahr";

zuerst will ich den String nach * trennen

Code:
$words = split("[*]+", $s);
jetzt sieht Array words so aus
words[0] = Frage
words[1] = Krankheit a#Krankheit b#Krankheit c#Krankheit d
words[2] = Allergie1#Allergie2#Allergie3#Allergie4
words[3] = Tag#Monat#Jahr
======

Jetzt will ich dieses Array durchlaufen und nach # parsen.

Code:
for($i=0;$i<sizeof($words);$i++)
{
    $tmp[$i] = split("[#]+", $words[$i]);

    for($j=0;$j<sizeof($tmp[$i]);$j++)
    {
       echo $tmp[$i][$j];
       echo "<br>";
    }
}

Hier ist Problem: Mein Ziel, dass die For-Schleiche mir als Ergebnis ein 2-dimensionales Array tmp liefert, was leider nicht der Fall ist

Danke im Voraus
 
words[0] = Frage
words[1] = Krankheit a#Krankheit b#Krankheit c#Krankheit d
words[2] = Allergie1#Allergie2#Allergie3#Allergie4
words[3] = Tag#Monat#Jahr
Das habe ich momentan

Ich will folgendes erreichen
tmp[0][0] = Frage

tmp[1][0] = Krankheit a
tmp[1][1] = Krankheit b
tmp[1][2] = Krankheit b
tmp[1][3] = Krankheit d

tmp[2][0] = Allergie1
tmp[2][1] = Allergie2
tmp[2][2] = Allergie3
tmp[2][3] = Allergie4

tmp[3][0] = Tag
tmp[3][1] = Monat
tmp[3][2] = Jahr

Wie mache ich das ?
 
Bei mir funktioniert dein Code.
Wie sieht der denn komplett aus?

PS: Ev. wäre es noch sinnvoll $tmp zu initialisieren.
 
PHP:
$tmp = array();
foreach($words as $word){
    $tmp[] = explode('#', $word);
}
 
Zuletzt bearbeitet:
Zurück
Oben