Foros del Web » Programando para Internet » PHP »

contar números.

Estas en el tema de contar números. en el foro de PHP en Foros del Web. Hola: Tengo un problemilla: quiero contar sólo el número 1 y con este código me cuenta también el 1 del 16. Estos son los números ...
  #1 (permalink)  
Antiguo 19/04/2012, 08:07
 
Fecha de Ingreso: enero-2010
Mensajes: 239
Antigüedad: 14 años, 3 meses
Puntos: 0
contar números.

Hola:

Tengo un problemilla: quiero contar sólo el número 1 y con este código me cuenta también el 1 del 16. Estos son los números en numeros.txt: 1, 16, 23, 32.

<?php

$fp = fopen("numeros.txt", "r");

$fc = fread($fp, filesize('numeros.txt'));
$eluno = substr_count($fc, "1");

fclose($fp);

?>

R/ $eluno = 2

Cómo hacer?
  #2 (permalink)  
Antiguo 19/04/2012, 08:57
Avatar de zalito12  
Fecha de Ingreso: noviembre-2011
Ubicación: Coruña, España
Mensajes: 430
Antigüedad: 12 años, 5 meses
Puntos: 67
Respuesta: contar números.

hombre, esto: substr_count($fc, "1");
Cuenta el número de apariciones de ese substring, es normal que te quente el 16. Puedes poner "1,".
  #3 (permalink)  
Antiguo 19/04/2012, 09:04
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: contar números.

Lo que pasa es que substr_count no cuenta números, si no strings, por lo que no hace una diferencia entre "1" y "16" ya que ambos son strings, tienes que desarrollar otro algoritmo para parsear tu texto, y convertir los números.

Sí la estructura es constante puedes usar explode() para separar el texto en un array y posteriormente verificar cada entrada del array contra el número que buscas.

Saludos.
  #4 (permalink)  
Antiguo 19/04/2012, 09:08
Avatar de bng5  
Fecha de Ingreso: junio-2009
Ubicación: 127.0.0.1
Mensajes: 269
Antigüedad: 14 años, 10 meses
Puntos: 24
Respuesta: contar números.

Es correcto que te devuelva '2' si le pedís que te cuente la cantidad de veces que aparece la cadena "1".

Una de la opciones es que troces el string hacia un array usando expresiones regulares y luego cuentes las apariciones de cierto valor:

Código PHP:
<?php

$txt 
'1, 16, 23, 32';

$numeros preg_split('/\D+/'$txt);

print_r($numeros);

$valores array_count_values($numeros);

print_r($valores);

$eluno $valores[1];

?>
  #5 (permalink)  
Antiguo 19/04/2012, 10:45
 
Fecha de Ingreso: enero-2010
Mensajes: 239
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: contar números.

Ok me queda claro.. Graciass a todos!
  #6 (permalink)  
Antiguo 19/04/2012, 11:59
 
Fecha de Ingreso: enero-2010
Mensajes: 239
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: contar números.

Se me ocurrió algo mejor q puede servirle a alguien aunque es una tontera. Eran realmente números del 1,..... al 50. Cambiar todo el código me era molesto.
Q otra forma(me pregunté)?

Pues esta: 01, 02, 03, 04, 05, 06, 07, 08, 09.

Con ello ya no me cuenta estos números q en su forma simple se siguen repitiendo.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:29.