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" }
}
Je travaille avec le tableau ci-dessus. Ce tableau multidimensionnel est appelé $stats
.
Je voudrais trier ce tableau, par la quantité.
Pour que le tableau multidimensionnel ait son premier tableau 1016 puis 1018, 1017 et ainsi de suite.
Je l'ai fait par:
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');
Ce qui fonctionne très bien!
Mais le problème est que l'index du tableau de têtes (les ID, 1019, 1018, 1017, etc.) disparaît lors de son tri. Je voudrais conserver les index des tableaux.
Comment puis-je faire ceci?
Je pense que vous avez besoin de uasort
-
Trier un tableau avec une fonction de comparaison définie par l'utilisateur et maintenir l'association d'index
Exemple
uasort($stats, 'compare');