douhuo0884 2018-08-17 08:57
浏览 55
已采纳

想在php中添加多维数组

I have two multi dimensional array.If the key is same then i want to get the sum how do i do that. one is-

Array
(
    [2018-08-02] => Array
        (
            [male] => 1
            [female] => 0
        )



    [2018-08-07] => Array
        (
            [male] => 1
            [female] => 0
        )

   [2018-08-09] => Array
        (
            [male] => 1
            [female] => 5
        )

)

2nd one is- one is-

Array
(
    [2018-08-02] => Array
        (
            [male] => 3
            [female] => 4
        )



    [2018-08-07] => Array
        (
            [male] => 1
            [female] => 5
        )
[2018-08-06] => Array
        (
            [male] => 2
            [female] => 3
        )


)

so my result would be

Array
(
    [2018-08-02] => Array
        (
            [male] => 4
            [female] => 4
        )



    [2018-08-07] => Array
        (
            [male] => 2
            [female] => 5
        )

   [2018-08-09] => Array
        (
            [male] => 1
            [female] => 5
        )
[2018-08-06] => Array
        (
            [male] => 2
            [female] => 3
        )
)

Code is

foreach ($reportlist as $reportlists){ 
    $daterep=$reportlists['act_date']; 
    $arr[$daterep]['male']=$reportlists['male_cnt']; 
    $arr[$daterep]['female']=$reportlists['female_cnt']; 
}

foreach ($ureportlist as $ureportlists){ 
    $daterep=$rueportlists['act_date']; 
    $arr2[$daterep]['male']=$reportlists['male_cnt']; 
    $arr2[$daterep]['female']=$reportlists['female_cnt'];
}
  • 写回答

4条回答 默认 最新

  • dream198731 2018-08-17 09:12
    关注

    Here is your code,

    <?php
    function pr($arr = [])
    {
        echo "<pre>";
        print_r($arr);
        echo "</pre>";
    }
    $arr1 = array
        (
        "2018-08-02" => array
        (
            "male"   => 1,
            "female" => 0,
        ),
    
        "2018-08-07" => array
        (
            "male"   => 1,
            "female" => 0,
        ),
    
        "2018-08-09" => array
        (
            "male"   => 1,
            "female" => 5,
        ),
    
    );
    $arr2 = array
        (
        "2018-08-02" => array
        (
            "male"   => 3,
            "female" => 4,
        ),
    
        "2018-08-07" => array
        (
            "male"   => 1,
            "female" => 5,
        ),
        "2018-08-06" => array
        (
            "male"   => 2,
            "female" => 3,
        ),
    );
    
    function custom_function($arr){
        $retArr = array();
        foreach ($arr as $child) { // arr1, arr2
            foreach ($child as $key => $value) { // traversing through keys
                foreach($value as $k => $v){
                    if (isset($retArr[$key][$k])) { // if key is set then add
                        $retArr[$key][$k] += $v;
                    } else {
                        $retArr[$key][$k] = $v; // else initiate
                    }
    
                }
            }
        } 
        return $retArr;
    }
    $result=custom_function(array($arr1,$arr2));
    pr($result);die;
    

    Here is your working code

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 2024-五一综合模拟赛
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭