php 二维数组合并 相同键名的值相加 10

例如将下面两个数据合并:$a=array('01'=>array('count'=>1,'amount'=>100),'02'=>array('count'=>2,'am... 例如将下面两个数据合并:
$a = array('01' => array('count'=>1, 'amount'=>100),
'02' => array('count'=>2, 'amount'=>200));

$b = array('01' => array('count'=>4, 'amount'=>300),
'02' => array('count'=> 5, 'amount'=>400));

预期结果为:
Array
(
[01] => Array
(
[count] => 5
[amount] => 400
)

[02] => Array
(
[count] => 7
[amount] => 600
)
)
不好意思,忘记了一种情况,当数组中key不同时,则追加,即:
当 $a = array('01' => array('count'=>1, 'amount'=>100),
'02' => array('count'=>2, 'amount'=>200),
'03' => array('count'=>3, 'amount'=>250) );

$b = array('01' => array('count'=>4, 'amount'=>300),
'02' => array('count'=> 5, 'amount'=>400));
结果为:
Array
(
[01] => Array
(
[count] => 5
[amount] => 400
)

[02] => Array
(
[count] => 7
[amount] => 600
)
[03] => Array
(
[count] => 3
[amount] => 250
)
)
展开
 我来答
百度网友6a7d11453
2011-06-23 · TA获得超过954个赞
知道小有建树答主
回答量:931
采纳率:50%
帮助的人:710万
展开全部
foreach ($b as $nodeIndex => $oneNode)
{
foreach ($oneNode as $key => $value)
{
$a[$nodeIndex][$key] += $value;
}
}
print_r($a);
追问
不好意思,忘记了一种情况,当数组中key不同时,则追加,看我的问题补充,多谢!
追答
直接试试看, 应该问题也不大
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
圣鸾OJ
2015-10-03 · TA获得超过1629个赞
知道小有建树答主
回答量:1136
采纳率:96%
帮助的人:113万
展开全部
你参考下吧, 我写的代码。就是不知道为什么会输出3个点,里面是还是有大小的,满意请加分,我自己测试过了

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

$k='';$id='';//获取一级的健,值中的ID用于判断
foreach ($arr as $key => $value) {
/*
array (size=3)
0 => string 'Admin' (length=5)
1 => string 'Teacher' (length=7)
2 => string 'index' (length=5)
*/
$nameArr=explode('/',$value['name']);//分割字符串为数组
if($nameArr['2']=='index'){
$k=$key;
$id=$value['id'];
continue;
}
if($value['id']==$id)
{
//var_dump($value);//这里都能输出子栏目的值
$arr[$k]['erji'][]=$value;//这里我不知道为什么输出3个。。。
unset($arr[$key]);//去除原先数组中的东西
continue;
}
}
var_dump($arr);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式