dedlfix: Ersetzungen in einem String

Beitrag lesen

Tach!

Ok, ich hab Nägel mit Köpfen gemacht und ein Testskript verfasst. Es funktioniert, wäre das so in etwa in Ordnung? Das einzige was ich mir so als Laie denke: Ist es nötig aus der Schleife auszusteigen, wenn eine Ersetzung durchgeführt wurde, damit sie nicht umsonst noch weiterläuft?

Nochmal genau nachgefragt: Es kann ja nur einmal nach München ersetzt werden, aber kann danach immer noch vorkommen, dass ein anderer Teilstring nach Hamburg/Berlin/wasimmer ersetzt werden muss oder kann nach der ersten erfolgreichen Ersetzung komplett aufgehört werden? Wenn letzteres, dann liefert dir str_replace() in einem vierten Parameter die Anzahl der Ersetzungen zurück, was du als Abbruchkriterium verwenden kannst.

$arrsize = count($replacearr);
for ($i = 1; $i <= $arrsize; $i++) {
  $string = str_replace($searcharr[$i-1], $replacearr[$i-1], $string);

$arrsize zu ermitteln gehört genauso wie das Setzen der Scheifenvariable zur Initialisierung des Schleifenvorgangs, also sollte es ebenfalls dort notieren werden (mit Komma getrennt). Weiterhin greifst du 0-basiert auf deine Arrays zu, dann ist es vorteilhafter, die Schleife bei 0 zu beginnen, den Wert direkt zu verwenden und nicht ständig eins abziehen zu müssen. Die Endebedingung ist dann nur < und nicht mehr <=.

dedlfix.