сортировать массив в порядке DESC

Как я могу отсортировать этот массив по элементу ключа

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

как это

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

Solutions Collecting From Web of "сортировать массив в порядке DESC"

Если вы просто хотите изменить порядок, используйте array_reverse :

 $reverse = array_reverse($array, true); 

Второй параметр – для сохранения ключей.

Если вы хотите сортировать ключи в порядке DESC, используйте:

 krsort($arr); 

Если вы хотите сортировать значения в порядке DESC и поддерживать ассоциацию индексов, используйте:

 arsort($arr); 

Если вы хотите сортировать значения в естественном порядке DESC и поддерживать ассоциацию индексов, используйте:

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

У вас есть массив, который вы хотите отсортировать по клавишам, в обратном порядке – вы можете использовать функцию krsort :

Сортирует массив по ключу в обратном порядке, поддерживая ключ к корреляции данных. Это полезно в основном для ассоциативных массивов.

В этом случае у вас будет такой код:

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

который даст вам такой вид вывода:

 $ /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" } 

Как sidenode: если бы вы хотели сортировать по значениям, вы могли бы использовать arsort – но, похоже, это не так, как вы хотите.

Попробуйте krsort () – это будет сортироваться в обратном порядке с помощью ключа массива, тогда как rsort будет сортировать значение массива.