douxiao0400 2016-05-03 05:31
浏览 28
已采纳

从数组中计算相同的类别,并使用其计数和类别名称存储在新数组中

I have one array which I am getting from database query response.

Now I want to count same categories and print in option_name array. I have tried it with different array functions but want get desire output.

I have one idea to take new array and push it with foreach loop but not much idea of how can i achieve using code. Please help me to solve it.

Array
(
    [0] => Array
        (
            [CNC] => Array
                (
                    [id] => 5
                    [category_id] => 68
                )

            [GVO] => Array
                (
                    [option_name] => Actors
                )

        )

    [1] => Array
        (
            [CNC] => Array
                (
                    [id] => 11
                    [category_id] => 72
                )

            [GVO] => Array
                (
                    [option_name] => Cricketers
                )

        )

    [2] => Array
        (
            [CNC] => Array
                (
                    [id] => 3
                    [category_id] => 72
                )

            [GVO] => Array
                (
                    [option_name] => Cricketers
                )

        )

    [3] => Array
        (
            [CNC] => Array
                (
                    [id] => 4
                    [category_id] => 74
                )

            [GVO] => Array
                (
                    [option_name] => Musician 
                )

        )

    [4] => Array
        (
            [CNC] => Array
                (
                    [id] => 7
                    [category_id] => 76
                )

            [GVO] => Array
                (
                    [option_name] => Directors
                )

        )

    [5] => Array
        (
            [CNC] => Array
                (
                    [id] => 6
                    [category_id] => 76
                )

            [GVO] => Array
                (
                    [option_name] => Directors
                )

        )
)

Desire Output:

Array
(
    [Actors] => 1
    [Cricketers] => 2
    [Musician] => 1
    [Directors] => 2
)

Thanks in advance!

  • 写回答

3条回答 默认 最新

  • douke6857 2016-05-03 05:39
    关注

    You simply need to loop through the array using foreach like as

    $result = [];
    foreach($arr as $k => $v){
        if(isset($result[$v['GVO']['option_name']])){
            $result[$v['GVO']['option_name']] += 1;
        }else{
            $result[$v['GVO']['option_name']] = 1;
        }
    }
    
    print_R($result);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line