Ordinare un array di array associativi in PHP

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.