加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 排序数组并保持键值

发布时间:2020-12-13 16:25:54 所属栏目:PHP教程 来源:网络整理
导读:我有一个如下的数组: Array( [team1] = Array ( [points] = 10 [players] = Array ( ... ) ) [team2] = Array ( [points] = 23 [players] = Array ( ... ) ) ... many more teams) 我想按照每个队伍的分数排序队伍.我试过这个: function sort_by_points($a
我有一个如下的数组:
Array
(
    [team1] => Array
        (
            [points] => 10
            [players] => Array
                (
                     ...
                )
        )

    [team2] => Array
        (
            [points] => 23
            [players] => Array
                (
                     ...
                )
        )

    ... many more teams
)

我想按照每个队伍的分数排序队伍.我试过这个:

function sort_by_points($a,$b)
{
    if ($a['points']==$b['points']) return 0;
        return ($a['points']<$b['points'])?1:-1;
}

usort($this->wordswithdata,"sortbycount");

但是该方法会覆盖包含团队名称和返回的键:

Array
(
    [0] => Array
        (
            [points] => 23
            [players] => Array
                (
                     ...
                )
        )

    [1] => Array
        (
            [points] => 10
            [players] => Array
                (
                     ...
                )
        )

    etc...
)

有没有办法排序数组而不覆盖团队名称作为数组键?

使用 uasort功能,应该保持键=>价值关联完好无损.

(旁注:你可以返回$a [‘points’] – $b [‘points’]而不是ifs)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读