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!