Hej,
Und wie kriege ich den String denn erstmal überhaupt 'zerlegt'?
Mit Rekursion. Ich kann aber kein php, daher versuch ichs mal in Pseudocode:
Function seperateString{
Input: { Liste strings, int level }
Output: { List strings }
begin{
/* (¹) */
String seperator <- "\s(\*){"+level+"}(?=[^\*])"
for( int i <- 0; i < length( strings ); i <- i + 1 ) {
Liste splitted <- preg_split( seperator, strings[i] )
if length( splitted ) != 1 ) {
strings[i] <- seperateString( splitted, level + 1 )
}
}
}
end
}
Function seperate {
Input: { String string }
begin {
List text <- new List
text[0] <- string;
seperateString( l, 1);
}
}
¹) Den regulären Ausdruck habe ich in Java getestet, hoffe er hilft dir trotzdem.
text[0]=Text0
text[1]=Text1
text[2]=Text2
text[2][1]=Text21
text[2][2]=Text22
text[2][2][1]=Text221
text[2][2][2]=Text222
text[3]=Text3
text[4]=Text4
Das Ergebnis sieht dann allerdings folgendermaßen aus:
text[0]
text[0][0]=Text0
text[0][1][0]=Text1
text[0][2][0]=Text2
text[0][2][1]=Text21
text[0][2][2][0]=Text22
text[0][2][2][1]=Text221
text[0][2][2][2]=Text222
text[0][3]=Text3
text[0][4]=Text4
Das äußerste unnötige Array wirst du schon selber wieder los ;-)
Beste Grüße
Biesterfeld
Art.1: Et es wie et es
Art.2: Et kütt wie et kütt
Art.3: Et hätt noch immer jot jejange
Das Kölsche Grundgesetz