Como ordenar um array por campo em PHP
Use usort() para ordenar arrays associativos por nome, data ou qualquer outra chave.
Solução com usort()
O callback compara dois elementos por vez. O operador <=> retorna o valor necessário para a ordenação.
$usuarios = [
['nome' => 'Daniel', 'idade' => 35],
['nome' => 'Ana', 'idade' => 28],
['nome' => 'Carlos', 'idade' => 41],
];
usort($usuarios, function ($a, $b) {
return $a['nome'] <=> $b['nome'];
});Ordem decrescente
Troque os lados da comparação:
usort($usuarios, function ($a, $b) {
return $b['nome'] <=> $a['nome'];
});Múltiplos campos
Quando o primeiro critério for igual, aplique o segundo.
usort($usuarios, function ($a, $b) {
$nome = $a['nome'] <=> $b['nome'];
return $nome !== 0 ? $nome : ($a['idade'] <=> $b['idade']);
});Dica: valide a existência das chaves quando os dados vierem de APIs ou arquivos externos.