Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] obtener numero que mas se repite.

Estas en el tema de obtener numero que mas se repite. en el foro de PHP en Foros del Web. hola estimados.. les cuento tengo una serie de nuemros que extraigo de un campo y con un Explode() obtengo un array con n numeros, entre ...
  #1 (permalink)  
Antiguo 26/04/2013, 23:56
 
Fecha de Ingreso: abril-2013
Mensajes: 3
Antigüedad: 11 años
Puntos: 0
obtener numero que mas se repite.

hola estimados.. les cuento

tengo una serie de nuemros que extraigo de un campo y con un Explode() obtengo un array con n numeros, entre ellos muechos repetidos, tomo dicho array y le genero un arsort() oredeno el array con el que posee mas repeticiones. el problema es que cuando obtengo el resultado este me deja el indice del array con el numero recibido.. nescesito alguna forma de obtener el array en el mismo orden que me lo deja la funcion arsort.

ejemplo:
explode(array)
y obtengo array(4,5,6,8,4,5,4,6,6,4);
luego con el arsort me queda esto;
$dato
$dato [4] =>4
$dato [6] =>3
$dato[5] =>2
$dato[8] =>1

el problema al recorer con un while, for o foreach es que va recorriendo segun el indice. entonces si obtengo esto me muestra primero el numero mas cercano al 0 y nescesito recorrer en el mismo orden que les muestro.. otro problema es que si obtiene solo ids grandes va a realizar el proceso muchas veces con un valor vacion, lo que retrasa la ejecucion.

Solicito su ayuda.
lo nescesito urgente estoy pegado con esto...

de antemano gracias, saludos.
  #2 (permalink)  
Antiguo 27/04/2013, 00:17
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: obtener numero que mas se repite.

Con el foreach no recorre según el índice sino como esté el array, prueba esto:

Código PHP:
Ver original
  1. <?php
  2.  
  3. $arr = array(4,5,6,8,4,5,4,6,6,4);
  4. arsort($arr);
  5.  
  6. foreach ($arr as $a) {
  7.     echo "$a <br />";
  8. }

Cita:
8
6
6
6
5
5
4
4
4
4
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #3 (permalink)  
Antiguo 27/04/2013, 15:50
 
Fecha de Ingreso: abril-2013
Mensajes: 3
Antigüedad: 11 años
Puntos: 0
Respuesta: obtener numero que mas se repite.

estimado andresdzphp entiendo tu respuesta pero el tema es que necesito agupar los valora segun el que mas se repite y poder rrecorrer el arreglo en el orden que me de arsort.

en tu ejemplo seria algo así.
$arr = array(4,5,6,8,4,5,4,6,6,4);
array_count_values($arr);
arsort($arr);

esto me dejaria la siguente matriz:

$arr[4] = > 4
$arr[6] = > 3
$arr[5] = > 2
$arr[8] = > 1

y esto al recorrerlo con un foreach lo recorre en el orden segun el indicador o sea recorrera 0,1,2,3,4,5,6,7,8. y en el orden que pido deviese recorrer [4],[6],[5],[8].

ese es el problema que tengo.
saludos...
  #4 (permalink)  
Antiguo 27/04/2013, 15:55
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: obtener numero que mas se repite.

No estás asignando a ningún lado el valor de array_count_values:

Prueba este:

Código PHP:
Ver original
  1. $arr = array(4,5,6,8,4,5,4,6,6,4);
  2. $arr = array_count_values($arr);
  3. arsort($arr);
  4.  
  5. foreach ($arr as $c => $v) {
  6.     echo "$c => $v <br />";
  7. }

Cita:
4 => 4
6 => 3
5 => 2
8 => 1
Edito: Como puedes ver no lo recorre en el orden que dices...

Edito2: Como tienes el array ordenado, lo recorre foreach. No hay truco.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP

Última edición por andresdzphp; 27/04/2013 a las 16:12
  #5 (permalink)  
Antiguo 27/04/2013, 17:04
 
Fecha de Ingreso: abril-2013
Mensajes: 3
Antigüedad: 11 años
Puntos: 0
Respuesta: obtener numero que mas se repite.

hola, si tienes razon, mi problema era que una funcion externa que habia creado mi compañero se estaba ejecutando me modificaba el array..

muchas gracias por tu ayuda...sirvio de mucho.. saludos

Etiquetas: numero
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 04:19.