а не придется ли делать array_keys & array_values для реплейса ?
или вы хотите это циклом заменять
if (array_key_exists($mat, $array)) {
return str_replace('Мат', $array['Мат'], $array);
}
Но таки да, нужно строке сделать explode и циклом перебрать все слова