php二维数组,相同值求和,并返回新的数组

已知数组:Array([25]=>Array([0]=>1[1]=>107[2]=>100[3]=>83[4]=>44[5]=>111)[26]=>Array([0]=>... 已知数组:

Array (
[25] => Array ( [0] => 1 [1] => 107 [2] => 100 [3] => 83 [4] => 44 [5] => 111 )
[26] => Array ( [0] => 100 [1] => 109 [2] => 126 [3] => 86 [4] => 93 [5] => 22)
[27] => Array ( [0] => 10 [1] => 113 [2] => 70 [3] => 57 [4] => 61 [5] => 44)
[28] => Array ( [0] => 110 [1] => 66 [2] => 36 [3] => 41 [4] => 25 [5] => 45 ) )
展开
 我来答
匿名用户
2014-04-01
展开全部
<?php
$old_arr = array(
    array(1,107,100,83,44,111),
    array(100,109,126,86,93,22),
    array(10,113,126,86,93,22),
    array(100,109,126,86,93,22),
);

$new_arr = array(0,0,0,0,0,0);

foreach($old_arr as $arr){
    for ($i = 0; $i < 6; $i++) {
        $new_arr[$i]+=$arr[$i];
    }
}

var_dump($new_arr);

?>

截图如下:

心的mg轻翼
2014-04-01 · 超过20用户采纳过TA的回答
知道答主
回答量:46
采纳率:0%
帮助的人:49.1万
展开全部
<?php
$arr=array(
25 => Array ( 0 => 1, 1 => 107, 2 => 100, 3 => 83, 4 => 44 ,5 => 111 ),
26 => Array ( 0 => 100, 1 => 109 ,2 => 126, 3 => 86, 4 => 93, 5 => 22),
27 => Array ( 0 => 10 ,1 => 113, 2 => 70, 3 => 57, 4 => 61, 5 => 44) ,
28 => Array ( 0 => 110, 1 => 66, 2 => 36, 3 => 41, 4 => 25, 5 => 45 )
);

$res_arr=array(); //结果数据 key 为 1 107 等值 ,value 为加和
$key_arr=array(); // value为 $res_arr 所有key

foreach($arr as $value){
foreach($value as $v){
if(in_array($v, $key_arr)){
$res_arr[$v]=$v+$res_arr[$v];
}else{
$res_arr[$v]=$v;
$key_arr[]=$v;
}

}
}

var_dump($res_arr);

/*
结果:
array
1 => int 1
107 => int 107
100 => int 200 //出现2次
83 => int 83
44 => int 88 //出现2次
111 => int 111
109 => int 109
126 => int 126
86 => int 86
93 => int 93
22 => int 22
10 => int 10
113 => int 113
70 => int 70
57 => int 57
61 => int 61
110 => int 110
66 => int 66
36 => int 36
41 => int 41
25 => int 25
45 => int 45
*/

;
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式