保持数组索引关键字排序用PHP多维数组时(Keeping array index key when

2019-07-03 21:55发布

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

我想通过数量进行排序这个数组。

使得multidim阵列是具有其第一阵列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等)消失。 我想,以保持数组索引。

我怎样才能做到这一点?

Answer 1:

我想你需要的是uasort -

从PHP DOC

排序与用户定义的比较函数的阵列并保持索引关联

  uasort($stats, 'compare');


文章来源: Keeping array index key when sorting a multidimensional array with PHP
标签: php usort