Foros del Web » Programando para Internet » PHP »

Ordenar array

Estas en el tema de Ordenar array en el foro de PHP en Foros del Web. Hola a todos y gracias por leer de antemano, me estoy volviendo loco y no consigo hacer lo que quiero. Código PHP: $filas = file ...
  #1 (permalink)  
Antiguo 16/09/2011, 10:44
 
Fecha de Ingreso: mayo-2009
Mensajes: 43
Antigüedad: 14 años, 11 meses
Puntos: 2
Ordenar array

Hola a todos y gracias por leer de antemano, me estoy volviendo loco y no consigo hacer lo que quiero.

Código PHP:
$filas=file('lista.txt');  
$i=0
$numero_fila=0
while(
$filas[$i]!=NULL){ 
$row $filas[$i+1]; 
$sql explode(",",$row); 
$i++; 
$numero_fila++; 
echo 
$sql[4].' '.$sql[5].'<br/>'

Tengo el anterior código pero necesito que al mostrar los resultados queden ordenados segun $sql[4]

¿Cómo lo puedo hacer?

Agradeceria que si es algo simple aquel que me ayude modificase mi código porque no estoy familiarizado con según que funciones.

Gracias.
  #2 (permalink)  
Antiguo 16/09/2011, 10:56
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Ordenar array

Aprende por tu cuenta, nadie te va a corregir tu trabajo.

Existen funciones para ordenación, solo necesitas usar alguna:
http://www.php.net/manual/en/ref.array.php
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 16/09/2011, 11:05
Avatar de gogupe  
Fecha de Ingreso: octubre-2006
Ubicación: Mallorca
Mensajes: 897
Antigüedad: 17 años, 6 meses
Puntos: 32
Respuesta: Ordenar array

Cita:
Iniciado por pateketrueke Ver Mensaje
Aprende por tu cuenta, nadie te va a corregir tu trabajo.

Existen funciones para ordenación, solo necesitas usar alguna:
http://www.php.net/manual/en/ref.array.php
La verdad es que nadie te obliga a contestar... hubieras quedado como un rey si hubieras puesto el enlace y haber puesto un: "a ver si te sirve algo de aqui:"

En fin, solo es un comentario.
  #4 (permalink)  
Antiguo 16/09/2011, 11:10
 
Fecha de Ingreso: mayo-2009
Mensajes: 43
Antigüedad: 14 años, 11 meses
Puntos: 2
Respuesta: Ordenar array

Este tio es tonto, conozco las funciones el problema es que no se como aplicarlas, sort, ksort etc si no quieres ayudarme o mejor dicho si no tienes ni idea mejor callate. Preguntar en el foro y que te deriven a los manuales es como ir al medico y que te de el vademecun...la verdad, he sido educado y no se que trabajo le puede costar a alguien que me eche un cable...
  #5 (permalink)  
Antiguo 16/09/2011, 11:19
Avatar de gogupe  
Fecha de Ingreso: octubre-2006
Ubicación: Mallorca
Mensajes: 897
Antigüedad: 17 años, 6 meses
Puntos: 32
Respuesta: Ordenar array

ellos son los gurú de la programación que todo lo saben .......

y volviendo a lo tuyo... ¿que contiene lista.txt?
  #6 (permalink)  
Antiguo 16/09/2011, 11:22
 
Fecha de Ingreso: mayo-2009
Mensajes: 43
Antigüedad: 14 años, 11 meses
Puntos: 2
Respuesta: Ordenar array

Cita:
Iniciado por gogupe Ver Mensaje
ellos son los gurú de la programación que todo lo saben .......

y volviendo a lo tuyo... ¿que contiene lista.txt?
Es una lista de una discoteca que consta d nombres y apellidos :)
  #7 (permalink)  
Antiguo 16/09/2011, 11:24
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Ordenar array

Que ironía...

Cita:
Iniciado por EduardoCh Ver Mensaje
[...] aquel que me ayude modificase mi código porque no estoy familiarizado con según que funciones. [..]
¿Entonces sabes o no sabes?

Cita:
Iniciado por EduardoCh Ver Mensaje
[...] conozco las funciones el problema es que no se como aplicarlas, sort, ksort etc [...]
Pues obviamente para eso existe la documentación, a mi no me costaba nada resolver tu problema y darte código. Si no sabes aplicarlas es por eso que debes leer como hacerlo, ¡no se van a aplicar solas!

Ni soy tonto, ni soy gurú.

No entiendo que tan complicado es poner algo de empeño en hacer las cosas.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #8 (permalink)  
Antiguo 16/09/2011, 11:29
 
Fecha de Ingreso: mayo-2009
Mensajes: 43
Antigüedad: 14 años, 11 meses
Puntos: 2
Respuesta: Ordenar array

Cita:
Iniciado por pateketrueke Ver Mensaje
Que ironía...



¿Entonces sabes o no sabes?



Pues obviamente para eso existe la documentación, a mi no me costaba nada resolver tu problema y darte código. Si no sabes aplicarlas es por eso que debes leer como hacerlo, ¡no se van a aplicar solas!

Ni soy tonto, ni soy gurú.

No entiendo que tan complicado es poner algo de empeño en hacer las cosas.
Tio va, callate...
  #9 (permalink)  
Antiguo 16/09/2011, 12:32
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: Ordenar array

Deberían moderar este tipo de discusiones, que no tienen que ver nada con el tema y hacen quedar mal al foro. Que pensarán los que tienen la misma duda y entran por Google etc... a encontrar una posible solución y lo que encuentran en una pelea sin sentido... En fin ese no es mi trabajo.

Sobre el tema puedes usar la función usort. ¿Cómo usarla? en el manual tienes muchos ejemplos y notas de usuario muy completas que te ayudan a entender su funcionamiento. Usa arrays para almacenar la información como más te convenga.

Ejemplo del manual

Código PHP:
Ver original
  1. <?php
  2. function cmp($a, $b)
  3. {
  4.     return strcmp($a["fruta"], $b["fruta"]);
  5. }
  6.  
  7. $frutas[0]["fruta"] = "uvas";
  8. $frutas[1]["fruta"] = "limones";
  9. $frutas[2]["fruta"] = "manzanas";
  10.  
  11. usort($frutas, "cmp");
  12.  
  13. while (list($clave, $valor) = each($frutas)) {
  14.     echo "\$frutas[$clave]: " . $valor["fruta"] . "\n";
  15. }
  16. ?>
__________________
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
  #10 (permalink)  
Antiguo 16/09/2011, 13:54
 
Fecha de Ingreso: mayo-2009
Mensajes: 43
Antigüedad: 14 años, 11 meses
Puntos: 2
Respuesta: Ordenar array

Cita:
Iniciado por andresdzphp Ver Mensaje
Deberían moderar este tipo de discusiones, que no tienen que ver nada con el tema y hacen quedar mal al foro. Que pensarán los que tienen la misma duda y entran por Google etc... a encontrar una posible solución y lo que encuentran en una pelea sin sentido... En fin ese no es mi trabajo.

Sobre el tema puedes usar la función usort. ¿Cómo usarla? en el manual tienes muchos ejemplos y notas de usuario muy completas que te ayudan a entender su funcionamiento. Usa arrays para almacenar la información como más te convenga.

Ejemplo del manual

Código PHP:
Ver original
  1. <?php
  2. function cmp($a, $b)
  3. {
  4.     return strcmp($a["fruta"], $b["fruta"]);
  5. }
  6.  
  7. $frutas[0]["fruta"] = "uvas";
  8. $frutas[1]["fruta"] = "limones";
  9. $frutas[2]["fruta"] = "manzanas";
  10.  
  11. usort($frutas, "cmp");
  12.  
  13. while (list($clave, $valor) = each($frutas)) {
  14.     echo "\$frutas[$clave]: " . $valor["fruta"] . "\n";
  15. }
  16. ?>
No se exactamente como implementar la funcion usort, seré más especifico por si no me he explicado bien, mi archivo txt esta compuesto por una serie de lineas donde figuran datos como email, nombre, apellidos, etc, todos estos datos están separados por comas, lo que yo quiero hacer es mostrar los dos ultimos valores de cada linea y que queden ordenados alfabeticamente por el primero de ellos...
Por lo que veo en el ejemplo fruta se mantiene como valor mientras que su comlementario cambia.
  #11 (permalink)  
Antiguo 16/09/2011, 14:01
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: Ordenar array

Tal vez algo así? no me voy a poner a simplificarlo porque veo que no entiendes. A ver si así te das una idea.

Código PHP:
Ver original
  1. <?php
  2.  
  3. $filas = file('prueba.txt');
  4.  
  5. $arr = array();
  6.  
  7. foreach ($filas as $row) {
  8.     $sql = explode(",", $row);
  9.     $arr[] = array($sql[4], $sql[5]);
  10. //Agregamos a un array los campos necesarios del txt
  11. }
  12.  
  13. //Función de ordenamiento definida por el usuario
  14. function ordenar_campo($a,$b) {
  15.     return strcmp($a[0], $b[0]);
  16. }
  17.    
  18. usort($arr, 'ordenar_campo'); //ordenar_campo = función ordenamiento
  19. //ordenamos según el índice 0 que sería $sql[4]
  20.  
  21. //Imprimimos
  22. foreach ($arr as $sql) {
  23.     echo $sql[0] . ' ';
  24.     echo $sql[1] . '<br />';
  25. }
__________________
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; 16/09/2011 a las 14:10
  #12 (permalink)  
Antiguo 16/09/2011, 14:51
 
Fecha de Ingreso: mayo-2009
Mensajes: 43
Antigüedad: 14 años, 11 meses
Puntos: 2
Respuesta: Ordenar array

Cita:
Iniciado por andresdzphp Ver Mensaje
Tal vez algo así? no me voy a poner a simplificarlo porque veo que no entiendes. A ver si así te das una idea.

Código PHP:
Ver original
  1. <?php
  2.  
  3. $filas = file('prueba.txt');
  4.  
  5. $arr = array();
  6.  
  7. foreach ($filas as $row) {
  8.     $sql = explode(",", $row);
  9.     $arr[] = array($sql[4], $sql[5]);
  10. //Agregamos a un array los campos necesarios del txt
  11. }
  12.  
  13. //Función de ordenamiento definida por el usuario
  14. function ordenar_campo($a,$b) {
  15.     return strcmp($a[0], $b[0]);
  16. }
  17.    
  18. usort($arr, 'ordenar_campo'); //ordenar_campo = función ordenamiento
  19. //ordenamos según el índice 0 que sería $sql[4]
  20.  
  21. //Imprimimos
  22. foreach ($arr as $sql) {
  23.     echo $sql[0] . ' ';
  24.     echo $sql[1] . '<br />';
  25. }
Ahora si, cuanyo yo trataba de hacer esto:
Código PHP:
  $arr[] = array($sql[4], $sql[5]); 
no me cargaba el array y era por que no puse el puñetero parentesis, siempre me pasa igual, unas comillas un cierre una llave....tsss llevo todo el dia con esto, gracias amigo.

Etiquetas: sql
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 23:34.