Для этого есть простая функция: substr_replace
.Но чтобы это работало, вам придется структурировать ваш массив по-другому (который в любом случае будет более структурированным), например:
$replacement = array(
0 => '#',
5 => '=',
7 => '#',
9 => '='
);
Затем отсортировать массив по убыванию ключей, используя krsort
:
krsort($replacement);
И тогда вам просто нужно перебрать массив:
$str = "ABCDEFGHIJK";
foreach($replacement as $position => $rep) {
$str = substr_replace($str, $rep, $position, 0);
}
echo $str; // prints #ABCDE=FG#HI=JK
Это работает путем вставки замен, начиная с конца строки.И он будет работать с любой замещающей строкой без определения длины этой строки.
Работает DEMO