php按日期求和,php多个数组 当date和customer的值一样 求和

$a = [

['date' => '2017-06-9', 'customer' => 1161, 'total' => 3, 'cg' => 1],

['date' => '2017-06-11', 'customer' => 1163, 'total' => 8, 'cg' => 3],

['date' => '2017-06-14', 'customer' => 1163, 'total' => 10, 'cg' => 5],

['date' => '2017-06-12', 'customer' => 1163, 'total' => 4, 'cg' => 2],

];

$b = [

['date' => '2017-06-10', 'customer' => 1161, 'total' => 3, 'cg' => 1],

['date' => '2017-06-11', 'customer' => 1163, 'total' => 9, 'cg' => 2],

['date' => '2017-06-13', 'customer' => 1165, 'total' => 6, 'cg' => 5],

['date' => '2017-06-11', 'customer' => 1165, 'total' => 5, 'cg' => 2]

];

//我写了个下面的数组处理方法,有更好的方法吗???

//代码开始

function merge_arr($myArray, $subArr){

$sArray = $zArray = array();

foreach ($myArray as $k=>$subArray) {

foreach ($subArr as $id=>$value) {

if($subArray && $value && ($subArray['date'] == $value['date'] && $subArray['customer'] == $value['customer'])){

$subArr[$id]['total'] += $subArray['total'];

$subArr[$id]['cg'] += $subArray['cg'];

unset($myArray[$k]);

}

}

}

return array_merge($myArray, $subArr);

}

print_r(merge_arr($myArray, $subArr));

//代码结束

//求最优处理上述数组的方法 我这个只能处理2组数组

//如果2组以上呢?我只能拿2组合并后的结果 再去处理第3个数组 有没优化方法

$mArray = merge_arr($myArray,$subArr);//前2组合并

$threeArray = merge_arr($mArray, $threeArr);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值