对具有最高点的数组进行排序

时间:2011-08-02 15:09:11

标签: php arrays sorting

如何对具有最高分数的数组进行排序?

示例:

$sale = array();

Array
(
   [UserA] => Array
        (
            [unsuccessful] => 0
            [Points] => 31
            [procesing] => 4
        )
   [UserB] => Array
        (
            [unsuccessful] => 4
            [Points] => 200
            [procesing] => 1
        )
   [UserC] => Array
        (
            [unsuccessful] => 3
            [Points] => 150
            [procesing] => 55
        )
)

按点排序,它应按顺序排列:UserB,UserC,UserA

3 个答案:

答案 0 :(得分:7)

uasort($array, function($a, $b) {
    return $b['Points'] - $a['Points'];
});

uasort()usort()函数采用回调,该回调应准确指定使一个项目大于或小于另一个项目的内容。如果此函数返回0,则项目相等。如果它返回正数,则第二项大于第一项。否则,第一项大于第二项。

uasort()usort()之间的区别在于uasort()也保留了密钥,而usort()却没有。另请查看the comparison of array sorting functions以了解有关排序数组的所有其他方法。

答案 1 :(得分:1)

您可以使用php函数usort提供自己的自定义排序逻辑。见http://www.php.net/manual/en/function.usort.php

答案 2 :(得分:1)

您可能会发现USort乐于助人:

http://php.net/manual/en/function.usort.php

另外这篇关于SO的文章。

Sort multi-dimensional array with usort