PHP数组去重并且吧 一个字段的值相加

3 篇文章 0 订阅

这是一个二维数组 要把它去重并且相加

[0] => array(4) {
  ["id"] => int(1)
  ["bid"] => int(1)
  ["sales"] => string(2) "15"
  ["price"] => string(4) "5975"
}
[1] => array(4) {
  ["id"] => int(2)
  ["bid"] => int(1)
  ["sales"] => string(1) "2"
  ["price"] => string(3) "659"
}
[2] => array(2) {
  ["id"] => int(3)
  ["bid"] => int(1)
}
[3] => array(2) {
  ["id"] => int(4)
  ["bid"] => int(1)
}
[4] => array(4) {
  ["id"] => int(5)
  ["bid"] => int(1)
  ["sales"] => string(1) "1"
  ["price"] => string(3) "256"
}

我要根据bid把sales累加和price累加,人后去掉重复的bid只保留一个,方法:

$new = array();
foreach ($store_i1 as $k=>$v){
    if(isset($new[$v['bid']])){
        $new[$v['bid']]['sales'] += $v['sales'];
        $new[$v['bid']]['price'] += $v['price'];
    }else{
        $new[$v['bid']]['sales'] = $v['sales'];
        $new[$v['bid']]['price'] = $v['price'];
    }

}

结果:

[1] => array(2) {
  ["sales"] => int(18)
  ["price"] => int(6890)
}
[3] => array(2) {
  ["sales"] => int(0)
  ["price"] => int(0)
}
[2] => array(2) {
  ["sales"] => string(3) "0"
  ["price"] => string(5) "0"
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值