Используйте для этого preg_replace()
вместо str_ireplace()
, поскольку вы можете определять границы слов в регулярном выражении.
$str = "first base baseball for all";
$pattern = '/\b(base|all)\b/i';
$str = preg_replace($pattern, "FOUND", $str);
echo $str;
// first FOUND baseball for FOUND
Если вы начинаете с массива, вы можете сделать это для построения регулярного выражения из массива:
$words = array('base','all');
// implode() words into a pipe-delimited string
$pattern = '/\b(' . implode("|", $words) . ')\b/i';
$str = preg_replace($pattern, "FOUND", $str);