String zweimal zerlegen

Hallo zusammen,

wollte mit folgendem Code einen String zweimal zerlegen. Sobald ein Sring aus mehreren Teilen besteht wie z.B. 123 abc 5.6 wird nur der letzte Teil (5.6) ausgegeben.

//Eingabe 123 abc 5.6

$suche=explode(" „,$_POST[„suche“]);
$nummer=$_GET[„nummer“];
for ($i=0; $i“;
echo $wert[1]."
„;
echo $wert[2].“
„;
echo $wert[3].“
";

//Ausgabe 5.6

Warum?

THX

Hi Alex,

wollte mit folgendem Code einen String zweimal zerlegen.
Sobald ein Sring aus mehreren Teilen besteht wie z.B. 123 abc
5.6 wird nur der letzte Teil (5.6) ausgegeben.

Der Code macht ganz genau, was Du geschrieben hast. Welche Ausgabe erwartest Du? Was ist $nummer? Warum spaltest Du nochmal mit ‚x‘ auf und weist in der Schleife immer die gleiche Variable zu? Da kannst Du ja gleich $wert = explode(‚x‘, array_pop(explode(’ ', $_POST[‚suche‘]))); schreiben… meintest Du $wert[] = … ? Dann wird $wert aber zweidimensional…

//Ausgabe 5.6

Mit error_reporting(E_ALL); am Anfang kommt noch mehr, undefined index und so…

Ciao
Rudy

Hi Alex,

wollte mit folgendem Code einen String zweimal zerlegen.
Sobald ein Sring aus mehreren Teilen besteht wie z.B. 123 abc
5.6 wird nur der letzte Teil (5.6) ausgegeben.

Der Code macht ganz genau, was Du geschrieben hast. Welche
Ausgabe erwartest Du?

Als Ausgabe erwarte ich mir 123 abc 5.6

Was ist $nummer?

Ist eine unnötige Variable. Hab’ vergessen diese herauszulöschen.

Warum spaltest Du
nochmal mit ‚x‘ auf und weist in der Schleife immer die
gleiche Variable zu? Da kannst Du ja gleich $wert =
explode(‚x‘, array_pop(explode(’ ', $_POST[‚suche‘])));
schreiben… meintest Du $wert[] = … ? Dann wird $wert aber
zweidimensional…

//Ausgabe 5.6

Ok, dann habe ich jetzt wohl meine Dummheit selber gesehen.

Durch

$wert = explode(„x“, $suche[$i]);

wird 5.6 als der letzte Wert in die Variable $Wert geschrieben und überschreibt den vorherigen Wert.

Mit error_reporting(E_ALL); am Anfang kommt noch mehr,
undefined index und so…

Ciao
Rudy

Danke für den Tip und die Antwort!

Hallo,

Du überschreibst $wert immer,

$suche=explode(" „,$_POST[„suche“]);
$nummer=$_GET[„nummer“];
for ($i=0; $i“;
echo $wert[1]."
„;
echo $wert[2].“
„;
echo $wert[3].“
";
}

So sollte es klappen.

die interessantere Frage ist aber,
was willst du überhaupt machen ?

Gruß
Phillip

Hallo,

Du überschreibst $wert immer,

$suche=explode(" „,$_POST[„suche“]);
$nummer=$_GET[„nummer“];
for ($i=0; $i“;
echo $wert[1]."
„;
echo $wert[2].“
„;
echo $wert[3].“
";
}

So sollte es klappen.

Warum müssen die Echo-Anweisungen in die Schleife geschrieben werden?

die interessantere Frage ist aber,
was willst du überhaupt machen ?

Gruß
Phillip

Es geht um Artikel in einer Datenbank die mit Längen- und Breitenangaben versehen sind. Die Eingabe soll z.B. mit 40x10 (40cm Länge, 10cm Breite) durchgeführt werden können. Die diese Angaben in zwei verschiedenen Spalten abgelegt.

Weiter unten hab’ ich schon wegen diesem Thema nachgefragt, was soweit auch ganz gut ging, aber mit dem zweimaligen Zerlegen des Strings gab’ es eben noch Probleme.

THX

Hallo,

Du überschreibst $wert immer,

$suche=explode(" „,$_POST[„suche“]);
$nummer=$_GET[„nummer“];
for ($i=0; $i“;
echo $wert[1]."
„;
echo $wert[2].“
„;
echo $wert[3].“
";
}

So sollte es klappen.

Warum müssen die Echo-Anweisungen in die Schleife geschrieben
werden?

in der Schleife weil die alten werte sonst überschrieben werden.

die interessantere Frage ist aber,
was willst du überhaupt machen ?

Gruß
Phillip

Es geht um Artikel in einer Datenbank die mit Längen- und
Breitenangaben versehen sind. Die Eingabe soll z.B. mit 40x10
(40cm Länge, 10cm Breite) durchgeführt werden können. Die
diese Angaben in zwei verschiedenen Spalten abgelegt.

Wenn es um das suchen von Werten im format nnxnn geht würde ich eher mit reg exp arbeiten.

Gruß
Phillip

Alles klar!
Wieder was gelernt! Danke!