如何通过内键对多维数组进行排序

Der*_*nce 5 php arrays sorting multidimensional-array

我有一个巨大的数组,是从 BattleField Bad Company 2 的 API 中提取的,并且士兵统计信息可以作为多维数组提取,每个士兵都有一个内部数组,但是 API sormats 它按名称字母顺序对士兵进行排序,我想按等级对它们进行排序(这只是该士兵数组中的另一个键)。我已经尝试解决这个问题好几天了,有人有什么想法吗?(即按 $arr[players][][rank] 对数组进行排序

这是数组的一部分

大批
(
    [玩家] => 数组
        (
            [0] => 数组
                (
                    [姓名] => bigjay517
                    [排名] => 29
                    [rank_name] => 二级少尉
                    [老手] => 0
                    [分数] => 979440
                    [等级] => 169
                    [杀死] => 4134
                    [死亡人数] => 3813
                    [时间] => 292457.42
                    [埃罗] => 319.297
                    [形式] => 1
                    [日期上次更新] => 2010-03-30T14:06:20+02:00
                    [count_updates] => 13
                    [一般] => 数组
                        (
                            [准确度] => 0.332
                            [狗] => 86
                            [狗] => 166
                            [elo0] => 309.104
                            [elo1] => 230.849
                            [游戏] => 384
                            [黄金版] => 0
                            [损失] => 161
                            [sc_assault] => 146333
                            [sc_award] => 567190
                            [sc_bonus] => 35305
                            [sc_demo] => 96961
                            [sc_general] => 264700
                            [sc_目标] => 54740
                            [sc_recon] => 54202
                            [sc_squad] => 53210
                            [sc_support] => 70194
                            [sc_team] => 21215
                            [sc_车辆] => 44560
                            [级别] => 0
                            [spm] => 0
                            [spm0] => 0
                            [spm1] => 0
                            [排名] => 0
                            [老手] => 0
                            [团队杀戮] => 67
                            [udogt] => 0
                            [胜利] => 223
                        )

Tee*_*kin 5

干得好。

$playergoop 是您提供的数组。

这个按子字段“排名”排序,但它是按升序排列的。如果您想要降序排列,可以将 > 切换为 <。

function sorter($one, $two) {
    return ($one['rank'] > $two['rank']);
}

usort($playergoop['players'], sorter);
Run Code Online (Sandbox Code Playgroud)