- preg_replace_callback: documentation ( source)
- implode: documentation ( source)
- mb_strtolower: documentation ( source)
<?php
$string = "Legend Of Zelda";
$array = array("to","of","at");
echo preg_replace_callback('~\b(?:' . implode("|", $array) . ')\b~ui', function ($m) {
return mb_strtolower($m[0]);
}, $string);