Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > PHP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-02-2007
halizia halizia is offline
Miembro
 
Registrado: abr 2006
Posts: 116
Poder: 12
halizia Va por buen camino
ordenacion arrays

hola a todos, estoy intentando ordenar un array con respecto a un campo, la estructura del array es la siguiente:

Fecha |Descripcion |Estado
31/12/2006| Texto |Texto
....

y para ordenarlo hago lo siguiente:

Código PHP:
 for($i=0;$i<count($datos);$i++){
             
$res[] = array('fecha' => $datos[$i][0], 'descripcion' => $datos[$i][1], 'estado' => $datos[$i][2]);
         }
         foreach (
$res as $llave => $fila) {
            
$fecha[$llave]  = $fila['fecha'];
            
$descripcion[$llave] = $fila['descripcion'];
            
$estado[$llave] = $fila['estado'];
         }
         
$result=array();
         
array_multisort($fecha,SORT_ASC,$descripcionSORT_DESC,$estadoSORT_DESC$res);
         for(
$i=0;$i<count($fecha);$i++){
             
$result[$i][0] = $fecha[$i];
             
$result[$i][1] = $descripcion[$i];
             
$result[$i][2] = $estado[$i];
         } 
pero no me lo ordena bien, si por ejemplo tengo dos fechas 01/02/2007 y otra que sea 21/01/2007 me pone primero la fecha del uno de febrero, en lugar de poner la del 21 de enero.

¿Cómo puedo solucionarlo? ¿Hay algún que otro modo de ordenarlo?

Saludos y gracias!!
Responder Con Cita
  #2  
Antiguo 06-02-2007
Avatar de lucasarts_18
lucasarts_18 lucasarts_18 is offline
Miembro
 
Registrado: mar 2005
Ubicación: Villa Alemana,Chile
Posts: 1.087
Poder: 14
lucasarts_18 Va por buen camino
Cita:
Empezado por halizia
¿Cómo puedo solucionarlo? ¿Hay algún que otro modo de ordenarlo?
¿Qué tal con sort ?

Hasta Luego -
__________________
No todo es como parece ser...
Responder Con Cita
  #3  
Antiguo 06-02-2007
halizia halizia is offline
Miembro
 
Registrado: abr 2006
Posts: 116
Poder: 12
halizia Va por buen camino
puedes explicarte un poco mejor?? poner un ejemplo o algo asi. los ejemplos de sort ya los he visto y no se usarlo.
Responder Con Cita
  #4  
Antiguo 06-02-2007
[kayetano] kayetano is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Elche
Posts: 644
Poder: 15
kayetano Va por buen camino
Hola

En el enlace que te ha pasado hay ejemplos.
Este es el mismo enlace pero en castellano http://cl.php.net/manual/es/function.sort.php
__________________
Salu2
KAYETANO

Cómo hacer preguntas de manera inteligente
Responder Con Cita
  #5  
Antiguo 06-02-2007
Avatar de lucasarts_18
lucasarts_18 lucasarts_18 is offline
Miembro
 
Registrado: mar 2005
Ubicación: Villa Alemana,Chile
Posts: 1.087
Poder: 14
lucasarts_18 Va por buen camino
Hola:

Si tu arreglo tiene índice númericos, puedes usar Sort.
Código SQL [-]
$streets[0] = “Elm St.”; 
$streets[1] = “Oak Dr.”; 
$streets[2] = “7th Ave.”;


Al ordenarlo obtendrás algo así.

Código SQL [-]
$streets[0] = “7th Ave.”; 
$streets[1] = “Elm St.”; 
$streets[2] = “Oak Dr.”;


Si te fijas obtendrás el orden deseado, claro que el orden de los indice anteriores lo pierdes ,en realidad no lo pierdes, sino que cambia el contenido de los indices.

Por otra parte si tus índices tienen claves string, puedes usar Asort

Código SQL [-]
$capitals[‘CA’] = “Sacramento”; 
$capitals[‘TX’] = “Austin”; 
$capitals[‘OR’] = “Salem”;
  
//al ordenarlo tendrás esto  

$capitals[‘TX’] = Austin 
$capitals[‘CA’] = Sacramento 
$capitals[‘OR’] = Salem


Nos vemos..

Hasta Luego -
__________________
No todo es como parece ser...

Última edición por lucasarts_18 fecha: 06-02-2007 a las 18:09:31.
Responder Con Cita
  #6  
Antiguo 07-02-2007
halizia halizia is offline
Miembro
 
Registrado: abr 2006
Posts: 116
Poder: 12
halizia Va por buen camino
pero mi array no tiene un sólo registro si no que tiene 3, me gustaria que hicises un ejemplo con más de un registro, no se si me explico...

mi array es:

01/03/2007 desc estado
23/01/2007 Desc1 estad1
02/02/2007 desc2 estad2


y quiero q lo ordene por fecha, quedaría una cosa asi:
23/01/2007 Desc1 estad1
02/02/2007 desc2 estad2
01/03/2007 desc estado

y si lo hago con la funcion para ordenar que he puesto más arriba lo hace de este modo:
01/03/2007 desc estado
02/02/2007 desc2 estad2
23/01/2007 Desc1 estad1

no se si con la funcion que me has dihco se puede hacer, pero por favor, pon un ejemplo para ordenar arrays de más de un campo.

Saludos.
Responder Con Cita
  #7  
Antiguo 07-02-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.108
Poder: 10
roman Tiene un aura espectacularroman Tiene un aura espectacular
Cita:
Empezado por halizia
si por ejemplo tengo dos fechas 01/02/2007 y otra que sea 21/01/2007 me pone primero la fecha del uno de febrero, en lugar de poner la del 21 de enero
Te está dando el orden correcto. Para PHP, '01/02/2007' y '21/01/2007' sólo son dos cadenas de caracteres y '01' es menor que '21'. Otra cosa sería si pusieras las fechas en formato aaaa/mm/dd: '2007/02/01' y '2007/01/21'.

// Saludos
Responder Con Cita
  #8  
Antiguo 07-02-2007
halizia halizia is offline
Miembro
 
Registrado: abr 2006
Posts: 116
Poder: 12
halizia Va por buen camino
Gracias!! le cambiado el formato de fecha y todo solucionado. con lo fácil que era!

Saludos.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
arrays dinamicos Chompiras Varios 8 14-07-2015 22:49:51
arrays nenufer Varios 7 13-05-2006 21:44:51
Arrays asociativos Bauhaus1975 Varios 2 27-04-2006 11:25:23
funcion arrays fabian20s Varios 3 19-07-2005 17:06:34
Liberar Arrays altp OOP 3 27-05-2004 15:39:12


La franja horaria es GMT +2. Ahora son las 17:11:14.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi