php如何将数组中id相同数据的value相加之后得到新的数组 20

array(size=2)'id'=>string'404'(length=3)'name'=>string'a'(length=1)'value'=>string'10... array (size=2)
'id' => string '404' (length=3)
'name' => string 'a' (length=1)
'value' => string '100.00' (length=6)

array (size=2)
'id' => string '404' (length=3)
'name' => string 'a' (length=1)
'value' => string '100.00' (length=6)

我需要的数组格式是

$a = array(
0 => array(
'id'=>1,
'value'=>4,
),
);
id相同的value值相加得出一个合。然后再生成一个下方那样的数组。求大神代码支援,小弟感激不尽
展开
 我来答
wjliuleidian
2016-09-21 · TA获得超过220个赞
知道小有建树答主
回答量:316
采纳率:100%
帮助的人:228万
展开全部

$a = array(
0 => array(
'id'=>1,
'value'=>4,
),
1 => array(
'id'=>2,
'value'=>2,
),
2 => array(
'id'=>3,
'value'=>3,
),
3 => array(
'id'=>4,
'value'=>5,
),
4 => array(
'id'=>5,
'value'=>1,
),
);

$b = array(
0 => array(
'id'=>1,
'value'=>2,
),
1 => array(
'id'=>2,
'value'=>3,
),
2 => array(
'id'=>3,
'value'=>2,
),
3 => array(
'id'=>4,
'value'=>3,
),
4 => array(
'id'=>5,
'value'=>2,
),
);
$c = array();
foreach($a as $k=>$v)
{
if ($v['id'] == $b[$k]['id'])
{
$c[] = array('id'=>$v['id'],'count'=>$v['value'] + $b[$k]['value']); 
}
}
echo '<pre>';
print_r($c);
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
魇者酌日
推荐于2017-10-06 · TA获得超过170个赞
知道答主
回答量:58
采纳率:0%
帮助的人:55.8万
展开全部
// PHP5.5+
    $ary1 = ['a'=>1,'b'=>2,'c'=>3];
    $ary2 = ['a'=>1,'b'=>2,'d'=>5];
    
    $merge = function($ary1,$ary2){
        foreach($ary2 as $k=>$v){
            if(key_exists($k, $ary1)){
                $ary1[$k] += $v;
            }else{
                $ary1[$k] = $v;
            }
        }
        return $ary1;
    };
    var_dump( $merge($ary1,$ary2) );
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式