Seite 1 von 1

Mit variable übergebenen string teilen?

Verfasst: 15.07.2003 20:45
von KoSSo
Hi,
ich habe eine Variable die einen String übergibt dieses ist wie folgt aufgebaut:

Code: Alles auswählen

$edo = "EDO 01 AND EDO 02 AND EDO 03 AND EDO 04 AND EDO 05";
nun möchte ich diesen string wie folgt aufteilen:

Code: Alles auswählen

$edo[0] = "EDO 01";
$edo[1] = "AND EDO 02";
$edo[2] = "AND EDO 03";
$edo[3] = "AND EDO 04";
$edo[4] = "AND EDO 05";
ich habe es schon mit explode probiert aber da muss man ein trennzeichen angeben so:

Code: Alles auswählen

$arr = explode('AND', $edo);
aber das problem ist dabei das dann AND entfernt wird und nurnoch das ausgegeben wird:

Code: Alles auswählen

$arr[0] = "EDO 01";
$arr[1] = "EDO 02";
$arr[2] = "EDO 03";
$arr[3] = "EDO 04";
$arr[4] = "EDO 05";
irgendjemand ne idee wie ich das aufteilen kann ohne daß das AND verloren geht?

Grüße KoSSo

Verfasst: 15.07.2003 21:03
von King Crusty
spontaner Workaround:

kleb halt das AND mit einer schleife wieder hin :-)

Verfasst: 15.07.2003 21:29
von KoSSo
Wie genau meinst das?Kann mir grade nichts darunter vorstellen :-? Bin noch absoluter noob in sachen php :oops: Wäre nett von dir wenn du mir etwas genauer erklären könntest wie du das meinst :)

Grüße KoSSo

Verfasst: 15.07.2003 23:54
von King Crusty
Bitte schreib doch mal wie du den String erhältst, warum du ihn splitten musst und wie unterschiedlich der String aussehen kann. Ich denke mal, dann können wir eine vernünftige(re) Lösung finden.

Verfasst: 16.07.2003 00:21
von PhilippK
KoSSo hat geschrieben:Wie genau meinst das?Kann mir grade nichts darunter vorstellen :-? Bin noch absoluter noob in sachen php :oops: Wäre nett von dir wenn du mir etwas genauer erklären könntest wie du das meinst :)
Versuch's mal so:

Code: Alles auswählen

$arr = explode(' AND ', $edo); // Auf die Leerzeichen achten!
if (count($arr) > 1) // Nur Ausführen, wenn das Array mehr als ein Element hat, da sonst das ganze keinen Sinn macht
{
    for($i = 1; $i < count($arr); $i++) // Wird für jedes Element des Arrays ausgeführt ohne dem ersten
    {
        $arr[$i] = 'AND ' . $arr[$i];
    }
}
Gruß, Philipp

Verfasst: 18.07.2003 19:42
von KoSSo
Danke dir Philipp es funzt aber eine frage habe ich noch wie kann ich danach den kompletten array inhalt wieder nebeneinander ausgeben lassen so:

Code: Alles auswählen

AND EDO 02 AND EDO 03 AND EDO 04 AND EDO 05
angefangen bei $arr[1] (also das erste element soll nicht mit ausgegeben werden)?

Grüße KoSSo

Verfasst: 18.07.2003 19:51
von Pyramide

Code: Alles auswählen

$gesamt = ""
for($i=1; $i<sizeof($arr); $i++)
{
    $gesamt .= $arr[$i];
}

Verfasst: 18.07.2003 22:38
von PhilippK
Pyramide hat geschrieben:

Code: Alles auswählen

$gesamt = ""
for($i=1; $i<sizeof($arr); $i++)
{
    $gesamt .= $arr[$i];
}
Kleine Korrektur:

Code: Alles auswählen

$gesamt = '';
for($i=1; $i<sizeof($arr); $i++)
{
    $gesamt .= ($gesamt == '') ? $arr[$i] : (' ' . $arr[$i]);
}
Gruß, Philipp

Verfasst: 18.07.2003 22:41
von KoSSo
Danke euch beiden nu klappts einwandfrei :)

Grüße KoSSo