Bueno, he probado ese codigo sin el bucle y funciona:
Código PHP:
$comentarios="dskfsdjkfhdsjkfhsdjf
dsfkljdhgjkdfg
:-t 8-)";
$arrsmile = array(":-O","",":-&","8-)",":-|",":-o",":-t","","","",":¨-(","",":heart:",":bheart:",":start:",":time:",":music:",":movie:","(-)]",":kiss:",":kake:");
$arrimg = array("<img src=img/lvisitas/smiles/smile01.gif>","<img src=img/lvisitas/smiles/smile02.gif>","<img src=img/lvisitas/smiles/smile032.gif>",
"<img src=img/lvisitas/smiles/smile04.gif>","<img src=img/lvisitas/smiles/smile05.gif>","<img src=img/lvisitas/smiles/smile06.gif>",
"<img src=img/lvisitas/smiles/smile07.gif>","<img src=img/lvisitas/smiles/smile08.gif>","<img src=img/lvisitas/smiles/smile09.gif>",
"<img src=img/lvisitas/smiles/smile010.gif>","<img src=img/lvisitas/smiles/smile011.gif>","<img src=img/lvisitas/smiles/smile012.gif>",
"<img src=img/lvisitas/smiles/smile013.gif>","<img src=img/lvisitas/smiles/smile014.gif>","<img src=img/lvisitas/smiles/smile015.gif>",
"<img src=img/lvisitas/smiles/smile016.gif>","<img src=img/lvisitas/smiles/smile017.gif>","<img src=img/lvisitas/smiles/smile018.gif>",
"<img src=img/lvisitas/smiles/smile019.gif>","<img src=img/lvisitas/smiles/smile020.gif>","<img src=img/lvisitas/smiles/smile021.gif>");
$arralt = array("Sorpresa grande, asombro incontenible","Sacar la lengua, burla","No puedo hablar","Guñando un ojo",
"Llevo gafas","Apenado","Sorpresa","Mal humor","Alegría, sonrisa","Tristeza, descontento",
"Llorar de tristeza","Corazón","Corazón roto","Estrella","Reloj","Nota musical","Película",
"Invitarte a una cerveza o un café","Besar","Fiesta");
$resultado = str_replace($arrsmile,$arrimg,$comentarios);
echo $resultado;
Faltan smiles porque en los mensajes del foro los sustituye (marca "deshabilitar los Smilies en este Mensaje").
Y los alt lo deberias poner en el codigo HTML del <img>.
Saludos.