У меня следующая структура массива:
Array
(
[0] => Array
(
[configuration_id] => 10
[id] => 1
[optionNumber] => 3
[optionActive] => 1
[lastUpdated] => 2010-03-17 15:44:12
)
[1] => Array
(
[configuration_id] => 9
[id] => 1
[optionNumber] => 2
[optionActive] => 1
[lastUpdated] => 2010-03-17 15:44:12
)
[2] => Array
(
[configuration_id] => 8
[id] => 1
[optionNumber] => 1
[optionActive] => 1
[lastUpdated] => 2010-03-17 15:44:12
)
)
Как лучше всего упорядочить массив поэтапно на основе optionNumber
?
Итак, результаты выглядят так:
Array
(
[0] => Array
(
[configuration_id] => 8
[id] => 1
[optionNumber] => 1
[optionActive] => 1
[lastUpdated] => 2010-03-17 15:44:12
)
[1] => Array
(
[configuration_id] => 9
[id] => 1
[optionNumber] => 2
[optionActive] => 1
[lastUpdated] => 2010-03-17 15:44:12
)
[2] => Array
(
[configuration_id] => 10
[id] => 1
[optionNumber] => 3
[optionActive] => 1
[lastUpdated] => 2010-03-17 15:44:12
)
)
< 0
, он сообщает функции сортировки, котораяa
должна появиться раньшеb
. Если это так,> 0
тоb
должно появиться раньшеa
.Использовать
usort
источник
Я использовал оба решения Kenny TM и AJ Quick и придумал функцию, которая может помочь в решении этой проблемы во многих случаях, например, при использовании сортировки ASC или DESC или сохранения ключей или если у вас есть объекты как дочерние элементы массива .
Вот эта функция (работает для PHP7 и выше из-за оператора космического корабля):
Использование:
редактировать
Первую часть можно переписать с помощью,
uasort()
а функция будет короче (работает для PHP7 и выше из-за оператора космического корабля):источник
>
(больше) вместо-
(минуса) при сравнении$a
и$b
значения , так как я сравнение строк. Хотя все еще работает.Ключи удаляются при использовании функции, подобной приведенной выше. Если ключи важны, следующая функция будет поддерживать их ... но циклы foreach довольно неэффективны.
Используйте arsort вместо asort, если хотите от большего к меньшему.
Код кредита: http://www.firsttube.com/read/sorting-a-multi-dimensional-array-with-php/
источник
Использование array_multisort (), array_map ()
ДЕМО
источник
PHP 5.3+
источник