sort por ordenar objetos multidimensional fecha arreglos arreglo array_multisort array php usort

por - Mantener clave de índice de matriz al ordenar una matriz multidimensional con PHP



sort array of array php (1)

Creo que lo que necesitas es uasort

DESDE PHP DOC

Ordene una matriz con una función de comparación definida por el usuario y mantenga la asociación de índice

Ejemplo

uasort($stats, ''compare'');

array(10) { [1019]=> array(3) { ["quantity"]=> int(0) ["revenue"]=> int(0) ["seller"]=> string(5) "Lenny" } [1018]=> array(3) { ["quantity"]=> int(5) ["revenue"]=> int(121) ["seller"]=> string(5) "Lenny" } [1017]=> array(3) { ["quantity"]=> int(2) ["revenue"]=> int(400) ["seller"]=> string(6) "Anette" } [1016]=> array(3) { ["quantity"]=> int(25) ["revenue"]=> int(200) ["seller"]=> string(6) "Samuel" } [1015]=> array(3) { ["quantity"]=> int(1) ["revenue"]=> int(300) ["seller"]=> string(6) "Samuel" } [1014]=> array(3) { ["quantity"]=> string(2) "41" ["revenue"]=> string(5) "18409" ["seller"]=> string(6) "Samuel" } }

Estoy trabajando con la matriz de arriba. Esta matriz multidimensional se llama $stats .

Me gustaría ordenar esta matriz, por la cantidad.

Para que la matriz multidim tenga su primera matriz 1016, luego 1018, 1017 y así sucesivamente.

Lo he hecho por:

function compare($x, $y) { if ( $x[''quantity''] == $y[''quantity''] ) return 0; else if ( $x[''quantity''] > $y[''quantity''] ) return -1; else return 1; } usort($stats, ''compare'');

Lo que funciona bien!

Pero el problema es que el índice de matriz principal (los ID, 1019, 1018, 1017, etc.) desaparece cuando se ordena. Me gustaría mantener los índices de matriz.

¿Cómo puedo hacer esto?