首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在PHP中按频率对元素排序

在PHP中按频率对元素排序
EN

Stack Overflow用户
提问于 2018-07-17 11:55:55
回答 1查看 422关注 0票数 1

输入:

代码语言:javascript
复制
$result = Array
    (
        Array
            (
                "name" => "",
                "squad_member_hash_id" => "",
                "parrent_club_hash_id" => "y",
            ),

        Array
            (
                "name" => "",
                "squad_member_hash_id" => "",
                "parrent_club_hash_id" => "x",
            ),

        Array
            (
                "name" => "",
                "squad_member_hash_id" => "",
                "parrent_club_hash_id" => "y",
            ),

        Array
            (
                "name" => "",
                "squad_member_hash_id" => "",
                "parrent_club_hash_id" => "y",
            ),

        Array
            (
                "name" => "",
                "squad_member_hash_id" => "",
                "parrent_club_hash_id" => "y",
            ),

        Array
            (
                "name" => "",
                "squad_member_hash_id" => "",
                "parrent_club_hash_id" => "x",
            ),

        Array
            (
                "name" => "",
                "squad_member_hash_id" => "",
                "parrent_club_hash_id" => "y",
            ),

        Array
            (
                "name" => "ლუკა ქურასბედიანი",
                "squad_member_hash_id" => "",
                "parrent_club_hash_id" => "z",
            ),

        Array
            (
                "name" => "",
                "squad_member_hash_id" => "",
                "parrent_club_hash_id" => "z",
            ),

       Array
            (
                "name" => "",
                "squad_member_hash_id" => "",
                "parrent_club_hash_id" => "x",
            ),

        Array
            (
                "name" => "",
                "squad_member_hash_id" => "",
                "parrent_club_hash_id" => "z",
            ),

        Array
            (
                "name" => "",
                "squad_member_hash_id" => "",
                "parrent_club_hash_id" => "x",
            ),

        Array
            (
                "name" => "",
                "squad_member_hash_id" => "",
                "parrent_club_hash_id" => "x",
            ),

        Array
            (
                "name" => "",
                "squad_member_hash_id" => "",
                "parrent_club_hash_id" => "x",
            ),

        Array
            (
                "name" => "",
                "squad_member_hash_id" => "",
                "parrent_club_hash_id" => "x",
            ),

        Array
            (
                "name" => "",
                "squad_member_hash_id" => "",
                "parrent_club_hash_id" => "x",
            ),

        Array
            (
                "name" => "",
                "squad_member_hash_id" => "",
                "parrent_club_hash_id" => "x",
            ),

        Array
            (
                "name" => "",
                "squad_member_hash_id" => "",
                "parrent_club_hash_id" => "x",
            ),

        Array
            (
                "name" => "",
                "squad_member_hash_id" => "",
                "parrent_club_hash_id" => "x",
            ),

        Array
            (
                "name" => "",
                "squad_member_hash_id" => "",
                "parrent_club_hash_id" => "z",
            ), 
        Array
            (
                "name" => "",
                "squad_member_hash_id" => "",
                "parrent_club_hash_id" => "y",
            ),
        Array
            (
                "name" => "",
                "squad_member_hash_id" => "",
                "parrent_club_hash_id" => "y",
            ),
        Array(
                "name" => "",
                "squad_member_hash_id" => "",
                "parrent_club_hash_id" => "z",
            ),

    );

我希望按频率对元素排序(按"parrent_club_hash_id“排序)。

11-x 7-y5-z,所以我想要这样的输出:

代码语言:javascript
复制
$result = Array
    (
        Array
            (
                "name" => "",
                "squad_member_hash_id" => "",
                "parrent_club_hash_id" => "x",
            ),

        Array
            (
                "name" => "",
                "squad_member_hash_id" => "",
                "parrent_club_hash_id" => "x",
            ),

        Array
            (
                "name" => "",
                "squad_member_hash_id" => "",
                "parrent_club_hash_id" => "x",
            ),

        Array
            (
                "name" => "",
                "squad_member_hash_id" => "",
                "parrent_club_hash_id" => "x",
            ),

        Array
            (
                "name" => "",
                "squad_member_hash_id" => "",
                "parrent_club_hash_id" => "x",
            ),

        Array
            (
                "name" => "",
                "squad_member_hash_id" => "",
                "parrent_club_hash_id" => "x",
            ),

        Array
            (
                "name" => "",
                "squad_member_hash_id" => "",
                "parrent_club_hash_id" => "x",
            ),

        Array
            (
                "name" => "ლუკა ქურასბედიანი",
                "squad_member_hash_id" => "",
                "parrent_club_hash_id" => "x",
            ),

        Array
            (
                "name" => "",
                "squad_member_hash_id" => "",
                "parrent_club_hash_id" => "x",
            ),

       Array
            (
                "name" => "",
                "squad_member_hash_id" => "",
                "parrent_club_hash_id" => "x",
            ),

        Array
            (
                "name" => "",
                "squad_member_hash_id" => "",
                "parrent_club_hash_id" => "x",
            ),

        Array
            (
                "name" => "",
                "squad_member_hash_id" => "",
                "parrent_club_hash_id" => "y",
            ),

        Array
            (
                "name" => "",
                "squad_member_hash_id" => "",
                "parrent_club_hash_id" => "y",
            ),

        Array
            (
                "name" => "",
                "squad_member_hash_id" => "",
                "parrent_club_hash_id" => "y",
            ),

        Array
            (
                "name" => "",
                "squad_member_hash_id" => "",
                "parrent_club_hash_id" => "y",
            ),

        Array
            (
                "name" => "",
                "squad_member_hash_id" => "",
                "parrent_club_hash_id" => "y",
            ),

        Array
            (
                "name" => "",
                "squad_member_hash_id" => "",
                "parrent_club_hash_id" => "y",
            ),

        Array
            (
                "name" => "",
                "squad_member_hash_id" => "",
                "parrent_club_hash_id" => "y",
            ),

        Array
            (
                "name" => "",
                "squad_member_hash_id" => "",
                "parrent_club_hash_id" => "z",
            ),

        Array
            (
                "name" => "",
                "squad_member_hash_id" => "",
                "parrent_club_hash_id" => "z",
            ), 
        Array
            (
                "name" => "",
                "squad_member_hash_id" => "",
                "parrent_club_hash_id" => "z",
            ),
        Array
            (
                "name" => "",
                "squad_member_hash_id" => "",
                "parrent_club_hash_id" => "z",
            ),
        Array(
                "name" => "",
                "squad_member_hash_id" => "",
                "parrent_club_hash_id" => "z",
            ),

    );
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-17 12:09:15

首先得到你的值的频率:

代码语言:javascript
复制
$values = array_count_values(array_column($result, 'parrent_club_hash_id'));

然后使用自定义排序按频率排序:

代码语言:javascript
复制
usort($result, function ($x, $y) use ($values) {
    // $y is first because you need descending sort
    return $values[$y["parrent_club_hash_id"]] - $values[$x["parrent_club_hash_id"]];
});

示例:http://sandbox.onlinephpfunctions.com/code/6265192e677641afbc21e899d97f252c14b5402f

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51380778

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档