Programación Web y Scripting > PHP
Contar letras de una palabra
(1/1)
daphne91:
¡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:
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:
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
Navegación
Ir a la versión completa