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);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
直接加: