сортировать массив в порядке DESC - PullRequest
10 голосов
/ 12 января 2010

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

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

как это

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

Ответы [ 4 ]

30 голосов
/ 12 января 2010

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

krsort($arr);

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

arsort($arr);

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

natcasesort($arr);
$arr = array_reverse($arr, true);
22 голосов
/ 12 января 2010

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

$reverse = array_reverse($array, true);

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

3 голосов
/ 12 января 2010

У вас есть массив, вы хотите отсортировать его по ключам, в обратном порядке - вы можете использовать функцию 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 - но это не то, что вы хотите, здесь.

0 голосов
/ 12 января 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...