2011-08-20 12 views
8

Hola Tengo una matriz con claves como fecha en este formato.php - Ordena matriz con fecha como clave

$arr = array(

    "20110805" => "2", 
    "20100703" => "5", 
    "20110413" => "3", 
    "20100805" => "4", 
    "20100728" => "6", 
    "20090416" => "7", 
    "20080424" => "8", 
    "20110819" => "1", 
); 

cómo puedo ordenar esta matriz por clave. Gracias.

+0

-1 Google: "PHP tipo matriz por claves" – fresskoma

+1

@TheHorse - Hay un montón de cosas que se pueden encontrar buscando en Google. Se prefiere mostrar duplicados en SO que los comentarios de tipo LMGTFY. :) –

+0

@Jared Farrish - TAN tan simple pregunta. encuentro la respuesta en google sin conocimiento php – TheHorse

Respuesta

20

Con las fechas en ese formato, una comparación alfabética funcionará muy bien. Use la función de PHP ksort.

ksort($arr); 
+2

Ejemplo: http://codepad.org/5WjP74TR –

+0

hola gracias por su respuesta, ksort ordenará la matriz por clave, pero la clave aquí son las fechas y ksort no ordena la matriz en orden. Necesito convertir las claves a un formato de fecha válido y luego hacer ksort, pero al hacerlo afectará el resto del código. ¿¿alguna sugerencia?? – bharath

+1

@bharath - Sus fechas están en orden de AÑO MES el DÍA, lo que significa que puede ordenarlas con un ordenamiento normal y las colocará en el orden correcto, siempre y cuando el '0' esté asignado a los MES cortos y DÍAS cortos. Sus "fechas" son esencialmente solo un número que se puede analizar en una fecha. –

4

Sólo por esta sola línea de código:

ksort($arr); 
Cuestiones relacionadas