¿Por qué var_dump devolvería un valor mayor que la longitud de la cadena?

Estoy trabajando para obtener algunas letras de canciones usando una API y convertir la cadena de letras en una variedad de palabras. Tengo algunos comportamientos inusuales en la función preg_replace. Cuando realicé una depuración usando var_dump, veo que var_dump devuelve un valor de 10 para la cadena "usted", lo que me dice que podría haber algo mal. Después de eso, preg_replace actúa de manera extraña.

Este es mi código:

$source = get_chart_lyrics_data("madonna","frozen");
$pieces = explode("\n", $source);
$lyrics = array();
for($i=0;$i<count($pieces);$i++){
  if($i>10){
    $words = explode(" ",$pieces[$i]);
    foreach($words as $_word){
      if($_word=="")
        continue;
      var_dump($_word);
      $word = strtolower($_word);
      var_dump($word);
      $word = trim($word);
      var_dump($word);
      $word = preg_replace("/[^A-Za-z ]/", '', $word);
      var_dump($word);
      $lyrics[$word]++;
    }
  }
}

Estas son las primeras 4 líneas que devuelve este código:

string(10) “You”
string(10) “you”
string(10) “you”
string(8) “lyricyou”

¿Cómo es que var_dump está devolviendo un valor de 10 para "usted"? ¿Y por qué preg_replace está actuando así?

Gracias.

Respuestas a la pregunta(1)

Su respuesta a la pregunta