根据数据库中的评分结果进行PHP数组排序

根据数据库中的评分结果进行PHP数组排序,php,arrays,sorting,Php,Arrays,Sorting,我有一个数组,我只是试图通过一个score键来排序,该键包含我试图排序的值。所需结果将更改以下数组的顺序,以便按以下顺序显示索引:[0],[2],[1] 我正在循环浏览从数据库中提取的结果。我正在创建一个名为score的键,然后将$row2数组推到一个单独的数组中,因为如果我使用mysql\u data\u seek它会去掉score键 它还在底部创建一个不需要的键score 我如何才能最好地清理这个,并确保结果按预期从高到低排列 $my_array = array(); while ($ro

我有一个数组,我只是试图通过一个
score
键来排序,该键包含我试图排序的值。所需结果将更改以下数组的顺序,以便按以下顺序显示索引:
[0]
[2]
[1]

我正在循环浏览从数据库中提取的结果。我正在创建一个名为
score
的键,然后将
$row2
数组推到一个单独的数组中,因为如果我使用
mysql\u data\u seek
它会去掉
score

它还在底部创建一个不需要的键
score

我如何才能最好地清理这个,并确保结果按预期从高到低排列

$my_array = array();

while ($row2 = mysql_fetch_assoc($result2))
{
 //score determined here
 //$row2['score'] = ...more math, variable is numeric, not a string
 array_push($array_page,$row2);
}
当前不期望的结果

Array
(
    [0] => Array
        (
            [score] => 7
        )
    [1] => Array
        (
            [score] => 2
        )
    [2] => Array
        (
            [score] => 4
        )
    [score] => 
)
Array
(
    [0] => Array
        (
            [score] => 7
        )
    [2] => Array
        (
            [score] => 4
        )
    [1] => Array
        (
            [score] => 2
        )
)
期望的结果

Array
(
    [0] => Array
        (
            [score] => 7
        )
    [1] => Array
        (
            [score] => 2
        )
    [2] => Array
        (
            [score] => 4
        )
    [score] => 
)
Array
(
    [0] => Array
        (
            [score] => 7
        )
    [2] => Array
        (
            [score] => 4
        )
    [1] => Array
        (
            [score] => 2
        )
)
在php>5.3上,可以使用内联function:

usort(&$myArray, function($a,$b){ /* ... */ });

在查询中使用
orderbyscore
。我不会在SQL查询中处理分数。。。但是您使用SQL查询获得分数,对吗?让数据库为您完成所有工作。不,这些都是由PHP处理的。即使我可以用MySQL实现这一点,我也会从MySQL迁移到PostgreSQL,以避免处理Oracle的政治问题,因此我最不想做的事情就是创建过于复杂的SQL语句。要在排序时维护键,请使用“uksort”这看起来几乎足够好,我只能接受它的排序方式相反,最重的分数在底部,而不是在我需要它们的顶部。我可以反转数组,但是有没有更简单的函数修改我可以使用?我尝试了将减号运算符更改为加号这一更明显的部分,尽管这不起作用只需替换“:D”