PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : String splitten


Pollux
14.03.2002, 16:42
Hi!

Ich bin leider noch nen kleiner PHP-Newbie und brauche eure Hilfe.

Ich habe einen String mit einer Zahl, sagen wir 8 Stellen: 12345678
Diesen möchte ich jetzt in die einzelnen Stellen teilen und damit weiterrechnen - werde ich dann wohl in einen Array speichern müssen.
Kann mir dabei jemand helfen?


Felix Kaiser
14.03.2002, 17:27
Damit kannst du eine Zeichenkette in einen Array splitten und somit jedes Zeichen einzeln ansprechen:


function StrToArray($s)
{
$x = Array();
for ($i = 0; $i < strlen($s); $i++) array_push($x,substr($s,$i,1));
return $x;
}

Pollux
15.03.2002, 13:13
Danke, werde ich gleich ausprobieren :)

Nev
16.03.2002, 01:15
Hi Ppollux,

Die Lösung die Guru genannt hat sollte funken, aber hübsch ist die gesamte ned.

Ich weiß ned woher du die Zahlen bekommst, bzw wie du sie erstellst.

Aber spätestens wenn du 2-stellige Zahlen hast bekommst ein Problem
zB:
Der String stellt sich zusammen aus:
1 2 3 45 6 7 8 9
dann hast du
123456789

wenn du dann das Script von Guru anwendest bekommst du 9-Elemente obwohl du nur 8 hast.

Da ich den Hintergrund ned kenne und ich auch ned weiß was danach geschieht kann ich dir nur diesen Tipp geben.

Füge bei deinem String zwischen den Zahlen -Elementen ein Trenn-Zeichen ein.
zB:
1|2|3|45|6|7|8|9

dann kannst du die Felder wieder splitten mit
array = explore(Splitter = str,[i]String = str[i]);

bei dem Beispiel oben schaut das dann so aus:
$x = explore(&acute;|&acute;,$s);

du bekommst dann:
$x[0] = 1;
$x[1] = 2;
$x[2] = 3;
$x[3] = 45;
$x[4] = 6;
$x[5] = 7;
$x[6] = 8;
$x[7] = 9;

mit implode(Splitter = str,Var = Array);
bekommst du dann wieder einen String der mit jeweils dem Splitter zwischen den Elementen


Hoffe ich konnte weiter helfen

Felix Kaiser
16.03.2002, 10:51
Kein Mensch redet von zweistelligen Zahlen. Es geht um eine ganz normale Zahl die zerlegt wird in ihre Ziffern und da ist meine Lösung die einfachste. Thema nicht erfasst?

Nev
16.03.2002, 19:28
Hi Guru,

richtig lesen erspart ärger

Original von Nev
Ich weiß ned woher du die Zahlen bekommst, bzw wie du sie erstellst.

Aber spätestens wenn du 2-stellige Zahlen hast bekommst ein Problem


Es war als Tipp gedacht, nicht als Kretik oder was auch immer!!

Felix Kaiser
16.03.2002, 19:54
Trotzdem scheint hier was falsch verstanden?


Orginal von Nev
Der String stellt sich zusammen aus:
1 2 3 45 6 7 8 9
dann hast du
123456789


Laut meinem Code hat man jedes Zeichen in einer Stelle von Array, folglich auch die trennenden Leerzeichen, womit sich 16 Elemente ergeben. Oder haste was anderes gemeint?

Nev
16.03.2002, 20:02
HI Guru


Anscheind schon


folgendes
nehmen wir den ersten Satz aus deinem letzten Zitat:
Ser String stellt sich zusammen aus:

damit mein ich
aus den einzelnen Zahlen

2ter Satz
dann hast du
die Zahl die darunter steht
ist dann der der sich daraus ergibt

Wenn du dann dein Script anwendest
bekommst du 9 Elemente
und nicht 8
obwohl du 8-Zahlen zusammen setzt

wie gesagt das ganze war als Tipp gedacht!!

Aber wenn man nur 1-stellige Zahlen zusammen setzt ist die Lösung von DIR schon ok
aber wenn ned kommt es was anderes raus
wenn du deines anwendest ;-)

Pollux
16.03.2002, 21:48
Sorry, dass ich hier so einen Stress gemacht habe, aber die Lösung von Guru war ausreichend, da ich in der Tat nur Ziffern (einstellig) habe. Danke euch beiden :)

Felix Kaiser
16.03.2002, 22:31
Pollux macht nix ;D

@ Nev: Ich werd irgendwie aus deinem nicht schlau... Du redest davon dass plötzlich ein Element aus 2 Zeichen bestehen kann. Tut es aber nicht, da ich aus der Zeichenkette (Zahl) jeweils immer nur ein Zeichen raushole. Da können nicht plötzlich 2 da sein und ein Element des Ergebnisarrays &acute;45&acute; lauten.