Tach!
Sieh dir bitte das Handbuch zu str_replace() an. Du benötigst keine Schleife. Und Du solltest SEARCH und REPLACE nicht vertauschen
Noch besser ist strtr() in seiner zweiten Variante.
$array_1 = array('oe','ae','ue','oe','ae','ue','ss'); $array_2 = array('ö','ä','ü','Ö','Ä','Ü','ß');
Da muss man dann nicht zwei Arrays pflegen und die Werte über die Position koordinieren, sondern kann ein Array mit Zuordnung über Key-Value haben.
$string =strtolower($string);
Wenn man mit Mehr-Byte-Kodierungen arbeitet, sollte man Ein-Byte-Funktionen nur dann einsetzen, wenn die Zeichen nicht als solche erkennt werden müssen. Um den Kleinbuchstaben erhalten zu können, muss das Zeichen erkannt werden. strtolower() arbeitet aber mit Ein-Byte-Zeichen, kann also den korrekten Buchstaben nicht finden. MB-Funktionen müssen hierfür verwendet werden (inklusive korrekter Initialisierung, welche Kodierung man zu verwenden gedenkt).
dedlfix.