posible problema con str_replace

Tengo un problema con str_replace, si probais este codigo vereis que no devuelve bien las letras y sus respectivas pronunsiaciones, y no entiendo porque falla.

Alguien me puede decir que es lo que falla y como solucionarlo?

-----------------------------------------------------------------------------

function convertir_a_fonetico($variable_entrante)
{
$buscar = array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z');

$reemplazar = array(' a ',' be ',' ce ',' de ',' e ',' efe ',' ge ',' hache ',' i ',' jota ',' ka ',' ele ',' eme ',' ene ',' o ',' pe ',' cu ',' ere ',' ese ',' te ',' u ',' uve ',' uvedoble ',' equis ',' ye ',' zeta ');

$salida = str_replace($buscar,$reemplazar,$variable_entrante);

echo $salida;
}

$entrada = "barcelona";

convertir_a_fonetico($entrada);

Imagen de creamiweb

Esta es una posible solución que funciona. EL problema estaba en las vocales. Por ejemplo: la b la cambia por be y cuando llega a la letra e vuelve a coger esa be y la cambia por b e. Mi solución ha sido probar sin las vocales y funciona. Otra opción sería colocar las vocales al principio y luego las consonantes.
Saludos,
Andrés Castellano
www.creamiweb.es

-------------------------------------------------------------------

function convertir_a_fonetico($variable_entrante)
{
//$buscar = array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z');
$buscar = array('b','c','d','f','g','h','j','k','l','m','n','p','q','r','s','t','v','w','x','y','z');

//$reemplazar = array(' a ',' be ',' ce ',' de ',' e ',' efe ',' ge ',' hache ',' i ',' jota ',' ka ',' ele ',' eme ',' ene ',' o ',' pe ',' cu ',' ere ',' ese ',' te ',' u ',' uve ',' uvedoble ',' equis ',' ye ',' zeta ');
$reemplazar = array(' be ',' ce ',' de ',' efe ',' ge ',' hache ',' jota ',' ka ',' ele ',' eme ',' ene ',' pe ',' cu ',' ere ',' ese ',' te ',' uve ',' uvedoble ',' equis ',' ye ',' zeta ');

$salida = str_replace($buscar,$reemplazar,$variable_entrante);

echo $salida;
}

$entrada = "barcelona";

convertir_a_fonetico($entrada);