2012-03-12 22 views
6

Ho bisogno di ordinare questo array con la "descrizione" della sottochiave in ordine crescente. Ho provato un paio di metodi come usort, ksort, subval_sort ma nessuno di questi lavori (Credo che il problema principale è che questi sono stringhe, sempre)Ordinamento di un array multidimensionale per stringa?

Ogni aiuto è apprezzato

array(77) { 
    [0]=> 
    array(3) { 
    ["name"]=> 
    string(17) "abcd" 
    ["description"]=> 
    string(15) "Delete XY" 
    ["level"]=> 
    int(1) 
    } 
    [1]=> 
    array(3) { 
    ["name"]=> 
    string(13) "fgfgdgfd" 
    ["description"]=> 
    string(18) "Uploader XY" 
    ["level"]=> 
    int(1) 
    } 
    [2]=> 
    array(3) { 
    ["name"]=> 
    string(15) "sdfdsfsdfs" 
    ["description"]=> 
    string(20) "Download abc" 
    ["level"]=> 
    int(0) 
    } 
} 

risposta

10
usort($array, function ($a, $b) { 
    return strcasecmp($a['description'], $b['description']); //compare two strings ignoring case 
}); 
+0

Perfetto, grazie! – peipst9lker

0

voi può usare SORT_STRING possibilità di array_multisort come:

array_multisort($ar[0], SORT_ASC, SORT_STRING, 
      $ar[1], , SORT_ASC, SORT_STRING); 
Problemi correlati