二维数组内部相加求助

如下,想实现二维数组内部相加,其中第二维中每个相对应的键名都是相同的,请问如何实现

Array
(

[0] => Array
    (
        [293] => 0
        [257] => 0
        [258] => 1
        [259] => 0
        [260] => 0
        [261] => 0
        [262] => 0
        [263] => 0
        [264] => 0
        [265] => 0
        [28] => 0
        [31] => 0
        [57] => 0
        [1578] => 0
        [1587] => 0
        [1599] => 0
        [1614] => 0
        [1639] => 0
        [1648] => 0
        [1649] => 0
        [2004] => 0
    )

[1] => Array
    (
        [293] => 1
        [257] => 0
        [258] => 1
        [259] => 0
        [260] => 0
        [261] => 0
        [262] => 0
        [263] => 0
        [264] => 0
        [265] => 0
        [34] => 0
        [44] => 0
        [64] => 0
        [1565] => 0
        [1572] => 0
        [1589] => 0
        [1590] => 0
        [1595] => 0
        [1611] => 0
        [1613] => 0
        [2004] => 0
    )

[2] => Array
    (
        [293] => 0
        [257] => 0
        [258] => 0
        [259] => 0
        [260] => 0
        [261] => 0
        [262] => 0
        [263] => 0
        [264] => 0
        [265] => 0
        [27] => 0
        [1583] => 0
        [1599] => 0
        [1602] => 0
        [1607] => 0
        [1608] => 0
        [1609] => 0
        [1635] => 0
        [1637] => 0
        [1649] => 0
        [2004] => 0
    )

[3] => Array
    (
        [293] => 0
        [257] => 0
        [258] => 0
        [259] => 0
        [260] => 0
        [261] => 0
        [262] => 0
        [263] => 0
        [264] => 0
        [265] => 0
        [36] => 0
        [52] => 0
        [60] => 0
        [1576] => 0
        [1582] => 0
        [1586] => 0
        [1596] => 0
        [1611] => 0
        [1620] => 0
        [1632] => 0
        [2004] => 0
    )

[4] => Array
    (
        [293] => 0
        [257] => 0
        [258] => 0
        [259] => 0
        [260] => 0
        [261] => 0
        [262] => 0
        [263] => 0
        [264] => 0
        [265] => 0
        [31] => 0
        [41] => 0
        [53] => 0
        [266] => 0
        [270] => 0
        [1586] => 0
        [1590] => 0
        [1609] => 0
        [1624] => 0
        [1649] => 0
        [2004] => 0
    )

[5] => Array
    (
        [293] => 0
        [257] => 0
        [258] => 1
        [259] => 0
        [260] => 0
        [261] => 0
        [262] => 0
        [263] => 0
        [264] => 0
        [265] => 0
        [38] => 0
        [42] => 0
        [64] => 0
        [267] => 0
        [1574] => 0
        [1576] => 0
        [1588] => 0
        [1597] => 0
        [1598] => 0
        [1624] => 0
        [2004] => 0
    )

[6] => Array
    (
        [293] => 1
        [257] => 0
        [258] => 0
        [259] => 0
        [260] => 0
        [261] => 0
        [262] => 0
        [263] => 0
        [264] => 0
        [265] => 0
        [28] => 0
        [45] => 0
        [1585] => 0
        [1597] => 0
        [1603] => 0
        [1617] => 0
        [1618] => 0
        [1628] => 0
        [1644] => 0
        [1649] => 0
        [2004] => 0
    )

[7] => Array
    (
        [293] => 0
        [257] => 0
        [258] => 0
        [259] => 0
        [260] => 0
        [261] => 0
        [262] => 0
        [263] => 0
        [264] => 0
        [265] => 0
        [39] => 0
        [266] => 0
        [1564] => 0
        [1601] => 0
        [1607] => 0
        [1620] => 0
        [1621] => 0
        [1622] => 0
        [1634] => 0
        [1640] => 0
        [2004] => 0
    )

)

阅读 2.8k
4 个回答
$resultArr = array();
$resultNum = array();
foreach($resultArr as $rk=>$rv){
    foreach($rv as $k=>$v){
        if(!isset($rightNum[$k])){
            $rightNum[$k] =$v;
        }else{
            $rightNum[$k] +=$v;
        }
    }
}
加一条判断,就可以了

没明白你的意思?

array_sum?

$sum=[];
foreach($arr as $v){
    foreach($v as $kk=>$vv){
        $sum[$kk]+=$v[$kk];
    }
}

是这个意思么
新手上路,请多包涵
###  第一种
$data = array();

$result = array();
$keys   = array_keys($data);
$cnt    = count($arr);

if (!empty($keys)) {
    foreach ($keys as $k) {
        for ($i = 0; $i < $cnt; $i++) {
            $result[ $k ] += $data[ $i ][ $k ];
        }
    }
}


### 第二种
$data   = array();
$result = array();
foreach ($data as $d) {
    foreach ($d as $k => $v) {
        $result[ $k ] += $v;
    }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题