duanjingwei7239 2016-06-08 12:22
浏览 39
已采纳

PHP每小时多维数组的Sum值

I have this array in $result

Array
(
[0] => Array
    (
        [0] => Array
            (
                [buysell] => 270
                [extracthour] => 13
                [date] => 2016-06-06 13:15:00
            )

        [1] => Array
            (
                [buysell] => 7080
                [extracthour] => 14
                [date] => 2016-06-06 14:00:00
            )

        [2] => Array
            (
                [buysell] => 1680
                [extracthour] => 15
                [date] => 2016-06-06 15:00:00
            )

        [3] => Array
            (
                [buysell] => 840
                [extracthour] => 16
                [date] => 2016-06-06 16:00:00
            )

        [4] => Array
            (
                [buysell] => 1320
                [extracthour] => 17
                [date] => 2016-06-06 17:00:00
            )

    )

[1] => Array
    (
        [0] => Array
            (
                [buysell] => 240
                [extracthour] => 0
                [date] => 2016-06-07 00:00:00
            )

        [1] => Array
            (
                [buysell] => 240
                [extracthour] => 2
                [date] => 2016-06-07 02:00:00
            )

        [2] => Array
            (
                [buysell] => 480
                [extracthour] => 4
                [date] => 2016-06-07 04:15:00
            )

        [3] => Array
            (
                [buysell] => 240
                [extracthour] => 5
                [date] => 2016-06-07 05:00:00
            )

        [4] => Array
            (
                [buysell] => 360
                [extracthour] => 7
                [date] => 2016-06-07 07:00:00
            )

and so on! i want to input those values in a variable as array something like this

 Array
 (
 [0] => array
        (
             [buysell] => (sum of all values in the same extracthour)
             [extracthour] => 1

and so on until i have the buysell value of every single hour from those days. can someone explain how to resolve this?

  • 写回答

3条回答 默认 最新

  • dongyong8071 2016-06-08 13:05
    关注

    Assuming you need to get an output from input as below:-

    Input:-

    $arr = array
        (  
        "0" => array  
            (
                "0" => array
                    (
                        "buysell" => "270",
                        "extracthour" => "13",
                        "date" => "2016-06-06 13:15:00"
                    ),
                "1" => array
                    (
                        "buysell" => "7080",
                        "extracthour" => "13",
                        "date" => "2016-06-06 14:00:00"
                    ),
                "2" => array
                    (
                        "buysell" => "1680",
                        "extracthour" => "2",
                        "date" => "2016-06-06 15:00:00"
                    )
            ),
        "1" => array
            (
                "0" => array
                    (
                        "buysell" => 240,
                        "extracthour" => 0,
                        "date" => "2016-06-07 00:00:00"
                    ),
    
                "1" => array
                    (
                        "buysell" => 240,
                        "extracthour" => 2,
                        "date" => "2016-06-07 02:00:00"
                    ),
    
                "2" => array
                    (
                        "buysell" => 480,
                        "extracthour" => 2,
                        "date" => "2016-06-07 04:15:00"
                    )
            ),
        );
    

    output:-

    Array
    (
        [0] => Array
            (
                [0] => Array
                    (
                        [buysell] => 7350
                        [extracthour] => 13
                    )
    
                [1] => Array
                    (
                        [buysell] => 1680
                        [extracthour] => 2
                    )
    
            )
    
        [1] => Array
            (
                [0] => Array
                    (
                        [buysell] => 240
                        [extracthour] => 0
                    )
    
                [1] => Array
                    (
                        [buysell] => 720
                        [extracthour] => 2
                    )
            )
    )
    

    Code:

    $outputArr = array();
    foreach($arr AS $key => $dataArr) {
        foreach ($dataArr AS $eachArr) {
            $outputArr[$key][$eachArr['extracthour']]['buysell'] += $eachArr['buysell'];
            $outputArr[$key][$eachArr['extracthour']]['extracthour'] = $eachArr['extracthour'];
        }
        $outputArr[$key] = array_values($outputArr[$key]);
    
    }
    

    remove multi dimension if you need a single array

    $outputArr[$eachArr['extracthour']]['buysell'] += $eachArr['buysell'];
    $outputArr[$eachArr['extracthour']]['extracthour'] = $eachArr['extracthour'];
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
  • ¥15 Vue3地图和异步函数使用
  • ¥15 C++ yoloV5改写遇到的问题
  • ¥20 win11修改中文用户名路径
  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
  • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
  • ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题
  • ¥15 帮我写一个c++工程
  • ¥30 Eclipse官网打不开,官网首页进不去,显示无法访问此页面,求解决方法
  • ¥15 关于smbclient 库的使用