Как указывают zerkms и deceze в своих комментариях, я уверен, что ваши сценарии получат более эффективные оптимизации в других местах, если вы не уверены, что ваше узкое место в производительности находится в приведенном выше фрагменте.
При этом еслиНапример, вы не хотите копаться с массивами, попробуйте это, предполагая, что каждое слово отделено только одним пробелом:
$string = trim($string);
if (strpos($string, ' ') !== false) {
$string = str_replace(' ', ' <span>', $string) . '</span>';
}