Ordinare un array multidimensionale con php
Spesso capita di dover ordinare array multidimensionali e di base php non fornisce funzioni che fanno sempre al caso nostro.
Mi riferisco ad array tipo questo:
Array (
[0] => Array (
[pos] => 4
[file] => 4.mp3
[timeSec] => 30
)
[3] => Array (
[pos] => 6
[file] => 6.mp3
[timeSec] => 30
)
[4] => Array (
[pos] => 7
[file] => 7.mp3
[timeSec] => 30
)
[5] => Array (
[pos] => 2
[file] => 2.mp3
[timeSec] => 30
)
[6] => Array (
[pos] => 1
[file] => 1.mp3
[timeSec] => 25
)
[8] => Array (
[pos] => 3
[file] => 3.mp3
[timeSec] => 30
)
)
Supponiamo di voler ordinare questo array attraverso il valore dell’elemento con chiave “pos”. La funzione che fa al caso nostro è la seguente:
function sort_multi_array($array, $internalkey) {
$tmp = $new = array();
foreach($array as $key => $internalArray) {
$tmp[$key] = strtolower($internalArray[$internalkey]);
}
asort($tmp);
foreach($tmp as $key => $internalArray) {
$new[] = $array[$key];
}
return $new;
}
sort_multi_array($array, 'pos');
Daniele Barisano - 2 Marzo 2018 at 13:04 -
Ottimo Matteo.. Funzione che potrebbe servirmi in un mio lavoro. E complimenti per i lavori Web Based fatti
admin - 7 Marzo 2018 at 9:39 -
Grazie Daniele, lieto di esserti stato d’aiuto 🙂 Se mai servisse, sempre disponibile al confronto!
Daniele Barisano - 10 Marzo 2018 at 10:37 -
Si.. Non c’è problema. Sei anche uno sviluppatore Magento?
admin - 5 Giugno 2018 at 9:37 -
No, Magento zero!