2010-01-11 12 views
8

¿Cómo puedo solucionar esto matriz por arrray clavegama especie en DESC orden

array(
4 => 'four', 
3 => 'three', 
2 => 'two', 
1 => 'one', 
) 

como esto

array(
1 => 'one', 
2 => 'two', 
3 => 'three', 
4 => 'four', 
) 
+0

Los diccionarios no están ordenados ... extra ct las claves en una lista separada y ordenar eso. –

Respuesta

21

Si lo que desea es invertir el orden, utilice array_reverse:

$reverse = array_reverse($array, true); 

El segundo parámetro es para la preservación de las llaves.

3

tiene una matriz, que desea ordenar por claves, en orden inverso - - se puede utilizar la función krsort:

ordena una matriz por clave en orden inverso , el mantenimiento de los datos clave para correlaciones. Esto es útil principalmente para matrices asociativas.


En caso de que usted, usted tiene este tipo de código:

$arr = array(
    1 => 'one', 
    2 => 'two', 
    3 => 'three', 
    4 => 'four', 
); 

krsort($arr); 
var_dump($arr); 

que conseguir que este tipo de salida:

$ /usr/local/php-5.3/bin/php temp.php 
array(4) { 
    [4]=> 
    string(4) "four" 
    [3]=> 
    string(5) "three" 
    [2]=> 
    string(3) "two" 
    [1]=> 
    string(3) "one" 
} 


Como sidenode: si hubiera querido ordenar por valores, podría haber usado arsort, pero aquí no parece ser lo que quiere.

0

Pruebe krsort() - que ordenará en reversa usando la tecla de matriz, mientras que rsort ordenará en el valor de la matriz.

27

Si desea ordenar las llaves en uso para Desc:

krsort($arr); 

Si desea ordenar los valores en orden DESC y mantener el uso asociación de índices:

arsort($arr); 

Si desea ordena los valores en orden natural DESC y mantiene el uso de la asociación de índices:

natcasesort($arr); 
$arr = array_reverse($arr, true);