Foros del Web » Programando para Internet » PHP »

Ordenar un array de datos

Estas en el tema de Ordenar un array de datos en el foro de PHP en Foros del Web. Hola, yo estoy ordenando una lista de números. Cita: $array=array($numero[0],$numero[1], $numero[2], $numero[3],$numero[4], $numero[5], $numero[6],$numero[7], $numero[8] , $numero[9],$numero[10],$numero[11], $numero[12], $numero[13],$numero[14], $numero[15], $numero[16],$numero[17], $numero[18] , $numero[19], $numero[20],$numero[21], ...
  #1 (permalink)  
Antiguo 18/04/2011, 11:06
 
Fecha de Ingreso: diciembre-2010
Ubicación: Argentina
Mensajes: 42
Antigüedad: 13 años, 4 meses
Puntos: 0
Ordenar un array de datos

Hola, yo estoy ordenando una lista de números.

Cita:
$array=array($numero[0],$numero[1], $numero[2], $numero[3],$numero[4], $numero[5], $numero[6],$numero[7], $numero[8] , $numero[9],$numero[10],$numero[11], $numero[12], $numero[13],$numero[14], $numero[15], $numero[16],$numero[17], $numero[18] , $numero[19], $numero[20],$numero[21], $numero[22]) ;
sort($array);
foreach ($array as $key => $val) {
echo "PUESTO [" . $key . "] = " . $val . "<br>";
}
$numero[] es un array que contiene números: Por ejemplo $numero[0] vale 13, $numero[1] vale 8, etc.
Este array con SORT es ordenado y me imprime

Cita:
PUESTO [0] = 6
PUESTO [1] = 6
PUESTO [2] = 6
PUESTO [3] = 6
PUESTO [4] = 7
PUESTO [5] = 8
¿Por qué? Porque el array no me dice cuanto vale (ejemplo : $numero[0] vale 13), sino que me pone en qué puesto está (digamos 0, 1) y la cantidad de veces que se repite el número, de menor a mayor (en el PUESTO[0] se repite el número 6 veces, en el PUESTO[1] se repite el número 6 veces y así sucesivamente). Pero NO ME DICE QUE NUMERO SE REPITE!. Así que esto no lo he podido solucionar. Si alguien me ayuda, le agradecería
  #2 (permalink)  
Antiguo 18/04/2011, 11:19
 
Fecha de Ingreso: abril-2011
Mensajes: 3
Antigüedad: 13 años
Puntos: 0
Respuesta: Ordenar un array de datos

Cita:
Iniciado por Anotadorcom Ver Mensaje
Hola, yo estoy ordenando una lista de números.



$numero[] es un array que contiene números: Por ejemplo $numero[0] vale 13, $numero[1] vale 8, etc.
Este array con SORT es ordenado y me imprime


¿Por qué? Porque el array no me dice cuanto vale (ejemplo : $numero[0] vale 13), sino que me pone en qué puesto está (digamos 0, 1) y la cantidad de veces que se repite el número, de menor a mayor (en el PUESTO[0] se repite el número 6 veces, en el PUESTO[1] se repite el número 6 veces y así sucesivamente). Pero NO ME DICE QUE NUMERO SE REPITE!. Así que esto no lo he podido solucionar. Si alguien me ayuda, le agradecería
cambia a sort($numero);

tal como lo hiciste $array guarda a el verdadero array que es numero. Saludos!
  #3 (permalink)  
Antiguo 18/04/2011, 11:31
 
Fecha de Ingreso: diciembre-2010
Ubicación: Argentina
Mensajes: 42
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Ordenar un array de datos

Claro, cambiando eso, me sale la cantidad de veces que ha salido el número, pero no me sale ordenado: me sale el numero 0 13 veces, el numero 1 16 veces, pero no me sale ordenado, digamos numero14 salio 5 veces, numero23 salio 6 veces, etc.
  #4 (permalink)  
Antiguo 18/04/2011, 15:38
 
Fecha de Ingreso: abril-2011
Mensajes: 3
Antigüedad: 13 años
Puntos: 0
Respuesta: Ordenar un array de datos

Cita:
Iniciado por Anotadorcom Ver Mensaje
Claro, cambiando eso, me sale la cantidad de veces que ha salido el número, pero no me sale ordenado: me sale el numero 0 13 veces, el numero 1 16 veces, pero no me sale ordenado, digamos numero14 salio 5 veces, numero23 salio 6 veces, etc.
Ammm como ingresas los datos al array?
por que yo los inserte de esta manera y no hubo problemas

Código:
$array=array($numero[0]=1,$numero[1]=2, $numero[2]=3, $numero[3]=4,$numero[4]=1, $numero[5]=1, $numero[6]=1,$numero[7]=1, $numero[8]=2, $numero[9]=1,$numero[10]=1,$numero[11]=3, $numero[12]=3, $numero[13]=3,$numero[14]=3, $numero[15]=3, $numero[16]=3,$numero[17]=5, $numero[18]=5, $numero[19]=5, $numero[20]=5,$numero[21]=5, $numero[22]=5) ; 
	sort($numero);
	foreach ($array as $key => $val) {
		echo "PUESTO [" . $key . "] = " . $val . "<br>";
	}
y como resultado me da lo siguiente:

Código:
PUESTO [0] = 1
PUESTO [1] = 2
PUESTO [2] = 3
PUESTO [3] = 4
PUESTO [4] = 1
PUESTO [5] = 1
PUESTO [6] = 1
PUESTO [7] = 1
PUESTO [8] = 2
PUESTO [9] = 1
PUESTO [10] = 1
PUESTO [11] = 3
PUESTO [12] = 3
PUESTO [13] = 3
PUESTO [14] = 3
PUESTO [15] = 3
PUESTO [16] = 3
PUESTO [17] = 5
PUESTO [18] = 5
PUESTO [19] = 5
PUESTO [20] = 5
PUESTO [21] = 5
PUESTO [22] = 5
  #5 (permalink)  
Antiguo 18/04/2011, 16:27
 
Fecha de Ingreso: diciembre-2010
Ubicación: Argentina
Mensajes: 42
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Ordenar un array de datos

Hola. Lo que pasa es que, por ejemplo, $numero[0]=30, no es igual a 1 o a 0. Porque $numero[0] hasta $numero[22] son datos leídos de un archivo.
Capaz que tendría que haber empezado por acá:
En un archivo de texto, tengo números (son mas de 1000 numeros):
Cita:
8
20
15
21, etc.
Yo leo esos numeros, por ejemplo, el 8. Luego uso un contador, por ejemplo
Cita:
contador8=contador8 + 1
Así contador8 contiene las veces que el 8 está repetido. Así uso contadores con todos los números, hasta el 22.

Ahora bien, luego lo transformo a array

Cita:
$numero[8] = $numero8 ;
Ahora ya puedo utilizar los arrays de $numero[0] a $numero[22], para ordenar los valores desde los menos repetidos a los mas repetidos.
Lo que quiero hacer, que es el tema de este post, es que al VALOR de $numero[0] , $numero[1], $numero[2] me los ordene de menor a mayor
O sea, que coloque por ejemplo
$numero[8] = 2 repeticiones
$numero[0] = 3 repeticiones
$numero[20] = 3 repeticiones
$numero[11] = 4 repeticiones
Y así sucesivamente. La primer parte, la de producir los contadores y la conversión a arrays ya está hecho, lo que me sale mal es la última parte.
Quiero que salga algo así en pantalla.
Cita:
$numero[8] = 2 repeticiones
$numero[0] = 3 repeticiones
$numero[20] = 3 repeticiones
$numero[11] = 4 repeticiones
$numero[4] = 5 repeticiones
$numero[6] = 5 repeticiones
$numero[21] = 5 repeticiones
$numero[1] = 6 repeticiones
O sea, que me diga qué número tiene x repeticiones y que me ordene las repeticiones de menor a mayor. Eso es todo . Se que estamos cerca, pero no doy con la tecla.
  #6 (permalink)  
Antiguo 18/04/2011, 17:02
 
Fecha de Ingreso: abril-2011
Mensajes: 3
Antigüedad: 13 años
Puntos: 0
Respuesta: Ordenar un array de datos

Cita:
Iniciado por Anotadorcom Ver Mensaje
O sea, que me diga qué número tiene x repeticiones y que me ordene las repeticiones de menor a mayor. Eso es todo . Se que estamos cerca, pero no doy con la tecla.
Gracias! ahora entiendo mejor el problema, sería de bastante ayuda que pongas tu código para ver por donde le podemos meter mano para lograrlo

Mientras tanto idearé como ayudarte con los datos que tengo ahora mismo..

Etiquetas: Ninguno
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 06:09.