Без функций регулярных выражений (в качестве бонуса также допускается замена произвольных строк, а не только символов):
function replacement($string, $search, array $replacements) {
$pos = 0;
while (($f = strpos($string, $search, $pos)) !== FALSE) {
$r = array_shift($replacements);
$string = substr($string, 0, $f) . $r .
substr($string, $f + strlen($search));
$pos = $f + strlen($r);
}
return $string;
}
Пример:
echo replacement("sf sdf aaasdf sdsaaaaggg", "aa",
array("alpha", "beta", "gammma"));
дает:
sf sdf alphaasdf sdsbetagammmaggg