2012-03-12 11 views
6

Necesito ordenar esta matriz por la subsubkey "description" en orden ascendente. He probado unos cuantos métodos como usort, ksort, subval_sort pero ninguno de estos trabajos (supongo que el principal problema es que éstos son cadenas, siempre)¿Ordenar una matriz multidimensional por cadena?

Cualquier ayuda se agradece

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) 
    } 
} 

Respuesta

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

Perfecto, gracias! – peipst9lker

0

se puede utilizar la opción de SORT_STRINGarray_multisort como:

array_multisort($ar[0], SORT_ASC, SORT_STRING, 
      $ar[1], , SORT_ASC, SORT_STRING); 
Cuestiones relacionadas