按值对多维数组进行排序

时间:2016-02-05 23:52:06

标签: php arrays sorting

我有这个数组,我想对它进行排序(ASC)?

$stand_array[$player_name][$player_points] = $player_rank;

的print_r

Array
(
[Player1] => Array
    (
        [50] => 5.7
    )

[Player2] => Array
    (
        [40] => 4.2
    )

[Player3] => Array
    (
        [30] => 3.7
    )

[Player4] => Array
    (
        [20] => 2.3
    )

[Player5] => Array
    (
        [10 => 1.5
    )

[Player6] => Array
    (
        [60] => 6.3
    )
)

你想帮我解决$ player_rank(ASC)上的这个数组吗?

注意:我尝试过这个功能,但它不起作用:

function sortByOrder($a, $b) {
return $a[$player_rank] - $b[$player_rank];
}
usort($myArray, 'sortByOrder');

1 个答案:

答案 0 :(得分:1)

$player_rank函数范围内无法显示变量sortByOrder。此外,每个播放器阵列中的索引都不同,因此您需要像这样访问它:

function sortByOrder($a, $b) 
{ 
    $a = end($a);
    $b = end($b);

    if ($a == $b) 
    {
       return 0;
    }

    return ($a < $b) ? -1 : 1;
}
usort($myArray, 'sortByOrder');

如果您想在$myArray中保存密钥,则必须使用uasort功能代替usort