CodePráticov3.9.0
PHP

Como ordenar um array por campo em PHP

Aprenda a ordenar arrays associativos em PHP usando usort(), ordem crescente, decrescente e múltiplos campos.

Solução com usort()

$usuarios = [
    ['nome' => 'Daniel', 'idade' => 35],
    ['nome' => 'Ana', 'idade' => 28],
    ['nome' => 'Carlos', 'idade' => 41],
];

usort($usuarios, function ($a, $b) {
    return $a['nome'] <=> $b['nome'];
});

O operador <=> retorna o valor esperado pela função de comparação.

Ordem decrescente

usort($usuarios, function ($a, $b) {
    return $b['nome'] <=> $a['nome'];
});

Ordenar por múltiplos campos

usort($usuarios, function ($a, $b) {
    $nome = $a['nome'] <=> $b['nome'];

    return $nome !== 0
        ? $nome
        : ($a['idade'] <=> $b['idade']);
});

Cuidados

Dica: valide a existência das chaves quando os dados vierem de APIs, arquivos ou outras fontes externas.