У меня проблема с preg_replace()
с использованием массивов.preg_replace с двумя массивами
В принципе, я бы хотел транспонировать эту строку;
$string = "Dm F Bb F Am";
Для
$New_string = "F#m D D A C#m";
Вот что я делаю:
$Find = Array("/Dm/", "/F/", "/Bb/", "/Am/", "/Bbm/", "/A/", "/C/");
$Replace = Array('F#m', 'A', 'D', 'C#m', 'Dm', 'C#', 'E');
$New_string = preg_replace($Find, $Replace, $string);
Но я получаю этот результат вместо:
E ## м E # DE # E # M
Проблема в том, что каждое соответствие заменяется на следующее, что-то подобное происходит (например, для E ## м):
Dm -> F # м -> A # м -> C## м -> E ## м
Есть ли решение просто измените «Dm» на «F # m», «F» на «A» и т. д.?
Спасибо!
Похоже на простое 'str_replace()' мне, нет 'preg' требуется – DaveRandom
спасибо, но я уже пробовал с' str_replace() ', и результат точно такой же, это неправильно ... – SuN
Oh * right * Я вижу к чему вы клоните. Ответит через секунду. – DaveRandom