Ordinare un array di array associativi in PHP

In PHP, capita spesso di dover ordinare un array contenente array associativi. Questo tipo di operazione è particolarmente utile quando si gestiscono dati strutturati, come i risultati di una query a un database.

Utilizzo di usort()

La funzione usort() consente di ordinare un array utilizzando una funzione di confronto definita dall'utente. Supponiamo di avere il seguente array di persone:


$persone = [
    ["nome" => "Luca", "eta" => 25],
    ["nome" => "Giulia", "eta" => 22],
    ["nome" => "Marco", "eta" => 30]
];

Per ordinare questo array in base all'età, possiamo usare usort() come segue:


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

Dopo l'esecuzione di questo codice, l'array sarà ordinato in base all'età in ordine crescente.

Ordinamento Decrescente

Se invece vogliamo un ordinamento decrescente, basta invertire il confronto:


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

Utilizzo di array_multisort()

Un altro approccio consiste nell'uso di array_multisort(), che consente di ordinare più array in base a un determinato campo:


$eta = array_column($persone, 'eta');
array_multisort($eta, SORT_ASC, $persone);

Questa tecnica è utile quando si devono ordinare array di grandi dimensioni in modo efficiente.

Conclusione

PHP offre diversi metodi per ordinare un array di array associativi. La scelta tra usort() e array_multisort() dipende dalla complessità dei dati e dalle esigenze specifiche del progetto.

Torna su