使用PHP排序多维数组时,保持数组索引键

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

我正在使用上面的数组.这个多维数组称为$stats.

我想按数量排序这个数组.

所以这个多数组有它的第一个数组1016然后是1018,1017等等.

我已经做到了:

                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');

哪个工作很好!

但是问题是头数组索引(ID,1019,1018,1017等)在被排序时消失.我想保留数组索引.

我该怎么做?

最佳答案
我想你所需要的是uasort –

FROM PHP DOC

Sort an array with a user-defined comparison function and maintain index association

  uasort($stats, 'compare');

转载注明原文:使用PHP排序多维数组时,保持数组索引键 - 代码日志