CodePráticov3.1.2
PHP

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.