SoloCodigo

Programación Web y Scripting => PHP => Mensaje iniciado por: daphne91 en Domingo 9 de Diciembre de 2018, 17:11

Título: Contar letras de una palabra
Publicado por: daphne91 en Domingo 9 de Diciembre de 2018, 17:11
¡Hola! Tengo un error que seguro que es muy tonto pero es que no lo entiendo. Tengo que contar las letras de una palabra, y esto es lo que he hecho;

$cadena= "programa";
$cont=array();
for ($i=0; $i<8; $i++){
   for ($j=0; $j<8; $j++){
   if ($cadena[$i]==$cadena[$j])
      $cont[$i]++;
   }
   echo $cadena[$i], ' sale ', $cont[$i], 'veces';
}

El caso es que si me las cuenta bien, pero me da errores también, de undefined offset y no sé en que está el fallo.

(ya sé que existe la función count, pero estoy empezando y no me dejan usarla, tengo que hacerlo así)
Título: Re:Contar letras de una palabra
Publicado por: Avalon en Sábado 15 de Diciembre de 2018, 10:24
Hola,

Lo que ocurre es que cuando incrementas el valor de $cont[$i] , la primera vez que pasas por ahí no existe ese elemento en el array, de ahí el warning. Si inicializas ese valor ya no aparecerá el warning:

$cadena= "programa";
$cont=array();
for ($i=0; $i<8; $i++){
   if (!isset($cont[$i])) {
      $cont[$i] = 0;
   }
   for ($j=0; $j<8; $j++){
      if ($cadena[$i]==$cadena[$j]) {
         $cont[$i]++;
      }
   }
   echo $cadena[$i], ' sale ', $cont[$i], 'veces';
}
Título: Re:Contar letras de una palabra
Publicado por: Haggen en Domingo 13 de Enero de 2019, 03:53
checa la función count_chars, a la mejor es más sencillo que lo que quieres hacer http://php.net/manual/es/function.count-chars.php