Похоже, ваш образец кода был более обезличенных (индексы 0 & 2 за $ заменители?) И над обрезано (где это вызов str_ireplace), однако ... Я предполагаю, что вы не полностью поняли str_ireplace.
Первое, что str_ireplace не работает на месте. Это возвращаемое значение - это измененная строка/массив строк.
Во-вторых, если у вас есть массив поисков и замен, PHP будет работать с использованием одного элемента из каждого массива и применения его к предмету/массиву объектов, прежде чем переходить к следующему элементу из каждого массив, а затем применить это к одному и тому же предмету (ов). Вы можете видеть это в приведенном ниже примере, где оба предмета заменяются «что-то» и «То же самое по-другому» никогда не появляются в результатах.
$patterns = array();
$replacements = array();
$patterns[0] = "'";
$patterns[1] = '\'';
$replacements[0] = 'Something';
$replacements[1] = 'Same thing just in a other way';
$subjects[0] = "I've included a single quote.";
$subjects[1] = "This'll also have a quote.";
$newSubjects = str_ireplace($patterns, $replacements, $subjects);
print_r($newSubjects);
При запуске это дает
Array ([0] => ISomethingve включен апостроф. [1] => ThisSomethingll также есть цитата.)
Где 'str_ireplace' ? – kennytm