Можно написать функцию
function replace($text, $word, $replacements) {
$r = $replacements;
$new_text = $text;
$replacement = null;
$pattern = "/$word/";
while(true) {
$replacement = $r[0];
$new_text = preg_replace(
$pattern,
$replacement,
$new_text,
1, // заменяем 1 раз
$count
);
if(!$count) return $new_text;
// ротируем замены
$r = array_merge(array_slice($r, 1), [$replacement]);
}
}
Использование:
$replaced = replace(
"First word. Second word. Third word. Forth word.",
"word",
["apple", "banana", "watermelon"]
);
print_r($replaced);
// First apple. Second banana. Third watermelon. Forth apple.
Замены повторяются по кругу, если совпадений больше