сортировать массив php по индексу - PullRequest
7 голосов
/ 28 октября 2011

У меня возникают трудности с сортировкой простого массива, который выглядит следующим образом:

array(4) {
  [32]=>
  string(1) "1"
  [34]=>
  string(1) "2"
  [35]=>
  string(1) "1"
  [33]=>
  string(1) "0"
}

Я просто хочу отсортировать его по индексу, чтобы оно выглядело так:

array(4) {
  [32]=>
  string(1) "1"
  [33]=>
  string(1) "0"
  [34]=>
  string(1) "2"
  [35]=>
  string(1) "1"
}

Я пытался использовать sort($votes);, но это, похоже, удаляет индекс, а потом мой массив выглядит так:

array(4) {
  [0]=>
  string(1) "0"
  [1]=>
  string(1) "1"
  [2]=>
  string(1) "1"
  [3]=>
  string(1) "2"
}

Итак, как лучше всего отсортировать этот массив, чтобы индекс был таким же, но отсортированным?

Ответы [ 4 ]

13 голосов
/ 28 октября 2011

Вы хотите использовать ksort(), который сортирует массив по ключам.

ksort

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

1 голос
/ 28 октября 2011

Краткий обзор функций сортировки массивов в PHP см. Сортировка массивов в руководстве по PHP.

0 голосов
/ 16 апреля 2019

https://www.php.net/manual/en/function.asort.php

похоже, что вы ищете.

это отсортирует массив и сохранит существующие индексы

array(4) {
  [33]=>
  string(1) "0"
  [32]=>
  string(1) "1"
  [35]=>
  string(1) "1"
  [34]=>
  string(1) "2"
}
0 голосов
/ 28 октября 2011

Использование ksort($votes);

А на выходе будет

array(4) {
  [32]=>
  string(1) "1"
  [33]=>
  string(1) "0"
  [34]=>
  string(1) "2"
  [35]=>
  string(1) "1"
}

Для получения дополнительной информации проверьте это

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