Как я могу отсортировать этот массив по элементу ключа
array( 4 => 'four', 3 => 'three', 2 => 'two', 1 => 'one', )
как это
array( 1 => 'one', 2 => 'two', 3 => 'three', 4 => 'four', )
Если вы просто хотите изменить порядок, используйте 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 будет сортировать значение массива.