Tach!
implode()
Ja, genau sowas meinte ich.
Und wie würde ich implode dann einsetzen, wenn ich sowas hier schlanker machen will?
$i=0;
foreach ($array_test AS $Einzel) {
$i++;
$aufzaehlung .= "".$Einzel."-".$weitere_variable."-".$und_noch_eine;
while ($i < count($array_test)) {
$aufzaehlung .= ",";
}
}
Die while-Schleife in dem foreach ist falsch. Sie führt zu einer Endlosschleife. Das Hinzufügen eines Leerstrings in einer Stringverknüpfung ist nich sinnvoll. Es sei denn, du willst einen impliziten Typecast provizieren:
$foo = "" . 42;
Der lässt sich aber intuitiver als expliziter Typecast schreiben
$foo = (string)42;
Aber zur eigentlichen Frage. Die beiden Werte $weitere\_variable $und\_noch\_eine sowie die Bindestriche sind innerhalb der Schleife feststehende Werte, die vor oder nach dem Komma zu stehen kommen. Du kannst also den Komma\_String im implode() um diese Werte erweitern.
Oftmals will man eine Liste von Werten in Hochkommas oder Anführungszeichen einrahmen und sie durch Komma oder dergleichen trennen. Also
"foo", "bar", "qux"
erzeugen. Dann kann als $glue im implode() ein '", "' genommen, sowie vorn und hinten dran das erste und letzte " angehängt werden. Aber Achtung! Wenn man einen Kontextwechsel zu beachten hat, geht das so einfach nicht. Man kann jedoch immerhin das implode für die Kommas verwenden und das Quotieren und Kontextwechsel-Behandeln in einer vorhergehenden foreach-Schleife abwickeln.
dedlfix.