Eu tenho a seguinte estrutura de array:
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
)
)
Qual é a melhor maneira de ordenar o array de forma incremental, com base no optionNumber
?
Portanto, os resultados são parecidos com:
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
, indica a função de classificação quea
deve aparecer antesb
. Se for,> 0
entãob
deve aparecer antesa
.Usar
usort
fonte
Eu usei ambas as soluções KennyTM e AJ Quick e vim com uma função que pode ajudar neste problema para muitos casos, como usar ASC ou DESC classificando ou preservando chaves ou se você tiver objetos como filhos de array .
Aqui está esta função (funciona para PHP7 e superior por causa do operador de nave espacial):
Uso:
Editar
A primeira parte pode ser reescrita usando
uasort()
e a função será mais curta (funciona para PHP7 e superior por causa do operador de nave espacial):fonte
>
(maior que) em vez de-
(menos) ao comparar os valores$a
e$b
, já que estava comparando strings. Ainda funciona.As teclas são removidas ao usar uma função como as acima. Se as chaves forem importantes, a função a seguir manterá isso ... mas os loops foreach são bastante ineficientes.
Use arsort em vez de asort se quiser de alto para baixo.
Crédito do código: http://www.firsttube.com/read/sorting-a-multi-dimensional-array-with-php/
fonte
Usando array_multisort (), array_map ()
DEMO
fonte
PHP 5.3+
fonte