php数组合并,id相同就求和

mengfk000 2016-11-28 05:40:25
$a = array(
0=>array('id'=>1,'name'='a','amount'=>1),
1=>array('id'=>2,'name'='b','amount'=>2),
2=>array('id'=>3,'name'='c','amount'=>3),
3=>array('id'=>1,'name'='a','amount'=>4)
);
想合并成这种数组
$b = array(
0=>array('id'=>1,'name'='a','amount'=>4),
1=>array('id'=>2,'name'='b','amount'=>2),
2=>array('id'=>3,'name'='c','amount'=>3)
); //id=1的amount相加了1+3
该怎么做呢
...全文
518 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
mengfk000 2016-11-29
  • 打赏
  • 举报
回复
引用 1 楼 A9925 的回复:
1加4等于4吗? 二重循环做 还有简单的,等楼下
0.0
xuzuning 2016-11-28
  • 打赏
  • 举报
回复 1
$a = array(
  0=>array('id'=>1,'name'=>'a','amount'=>1),
  1=>array('id'=>2,'name'=>'b','amount'=>2),
  2=>array('id'=>3,'name'=>'c','amount'=>3),
  3=>array('id'=>1,'name'=>'a','amount'=>3)
);
$b = array();
foreach($a as $v) {
  if(isset($b[$v['id']])) $b[$v['id']]['amount'] += $v['amount'];
  else $b[$v['id']] = $v;
}
$b = array_values($b);
print_r($b);
Array
(
    [0] => Array
        (
            [id] => 1
            [name] => a
            [amount] => 4
        )

    [1] => Array
        (
            [id] => 2
            [name] => b
            [amount] => 2
        )

    [2] => Array
        (
            [id] => 3
            [name] => c
            [amount] => 3
        )

)

  • 打赏
  • 举报
回复
1加4等于4吗? 二重循环做 还有简单的,等楼下

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧