Hola,
Tu problema esta en:
Código PHP:
for($i=0;$palabras[0][$i];$i++)
{
y no es un error, es un simple aviso. Tu codigo funciona, pero no es del todo correcto. Lo que pasa es que se basa en una caracteristica de PHP de que si intentas acceder a una variable que no esta definida (o el indice de un array), devuelve NULL (y dependiendo de la configuracion de mostrar los errores, muestra el notice). Y como NULL se evalua a false, finaliza el bucle como deseas.
La forma correcta de hacerla es:
Código PHP:
for($i=0;$i<count($palabras[0]);$i++)
{
count() devuelve el numero de elementos del array, y entonces sales del bucle cuando $i valga ese numero de elementos. Si tiene 10 elementos, los indices iran de 0 a 9 y cuando $i valga 10 saldra del bucle.
Otra forma de hacerlo seria con el foreach para recorrer el array. Miralo en el manual.
Saludos.