• Miércoles 20 de Noviembre de 2024, 04:41

Autor Tema:  Contar letras de una palabra  (Leído 2997 veces)

daphne91

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Contar letras de una palabra
« en: Domingo 9 de Diciembre de 2018, 17:11 »
0
¡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í)

Avalon

  • Miembro MUY activo
  • ***
  • Mensajes: 448
    • Ver Perfil
Re:Contar letras de una palabra
« Respuesta #1 en: Sábado 15 de Diciembre de 2018, 10:24 »
0
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';
}

Haggen

  • Miembro activo
  • **
  • Mensajes: 88
  • Nacionalidad: mx
    • Ver Perfil
    • Mis proyectos
Re:Contar letras de una palabra
« Respuesta #2 en: Domingo 13 de Enero de 2019, 03:53 »
0
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