关于数据组装问题
$tradeData = [
['name'=>'张三','price'=>5,'type'=>'wx','num'=>2,'data_type'=>'trade'],
['name'=>'张三','price'=>15,'type'=>'ali','num'=>3,'data_type'=>'trade'],
['name'=>'张三','price'=>20,'type'=>'other','num'=>4,'data_type'=>'trade'],
['name'=>'李四','price'=>5,'type'=>'wx','num'=>3,'data_type'=>'trade'],
['name'=>'李四','price'=>15,'type'=>'ali','num'=>4,'data_type'=>'trade'],
['name'=>'李四','price'=>20,'type'=>'other','num'=>5,'data_type'=>'trade'],
['name'=>'王五','price'=>20,'type'=>'wx','num'=>5,'data_type'=>'trade'],
['name'=>'麻子','price'=>10,'type'=>'ali','num'=>5,'data_type'=>'trade'],
];
$rechargeData = [
['name'=>'张三','price'=>5,'type'=>'wx','num'=>1,'data_type'=>'recharge'],
['name'=>'张三','price'=>15,'type'=>'ali','num'=>1,'data_type'=>'recharge'],
['name'=>'张三','price'=>30,'type'=>'other','num'=>1,'data_type'=>'recharge'],
['name'=>'李四','price'=>5,'type'=>'wx','num'=>1,'data_type'=>'recharge'],
['name'=>'李四','price'=>15,'type'=>'ali','num'=>1,'data_type'=>'recharge'],
['name'=>'李四','price'=>30,'type'=>'other','num'=>1,'data_type'=>'recharge'],
['name'=>'王五','price'=>30,'type'=>'other','num'=>1,'data_type'=>'recharge'],
['name'=>'刘六','price'=>10,'type'=>'other','num'=>1,'data_type'=>'recharge'],
];
$data = array_merge($tradeData,$rechargeData);
$newData = [];
foreach ($data as $k=>$v) {
if(isset($newData[$v['name']])) {
$newData[$v['name']]['count'] += $v['price'];
if($v['data_type']=='trade') {
$newData[$v['name']]['trade'] += $v['price'];
$newData[$v['name']]['trade_num'] += $v['num'];
if($v['type']=='wx') {
$newData[$v['name']]['wx'] += $v['price'];
} elseif ($v['type']=='ali') {
$newData[$v['name']]['ali'] += $v['price'];
} elseif ($v['type']=='other') {
$newData[$v['name']]['other'] += $v['price'];
}
} else {
$newData[$v['name']]['recharge'] += $v['price'];
$newData[$v['name']]['recharge_num'] += $v['num'];
if($v['type']=='wx') {
$newData[$v['name']]['wx'] += $v['price'];
} elseif ($v['type']=='ali') {
$newData[$v['name']]['ali'] += $v['price'];
} elseif ($v['type']=='other') {
$newData[$v['name']]['other'] += $v['price'];
}
}
} else {
$newData[$v['name']]['name'] = $v['name'];
$newData[$v['name']]['count'] = $v['price'];
$newData[$v['name']]['trade'] = 0;
$newData[$v['name']]['trade_num'] = 0;
$newData[$v['name']]['recharge'] = 0;
$newData[$v['name']]['recharge_num'] =0;
$newData[$v['name']]['wx'] = 0;
$newData[$v['name']]['ali'] = 0;
$newData[$v['name']]['other'] = 0;
if($v['data_type']=='trade') {
$newData[$v['name']]['trade'] = $v['price'];
$newData[$v['name']]['trade_num'] = $v['num'];
if($v['type']=='wx') {
$newData[$v['name']]['wx'] = $v['price'];
} elseif ($v['type']=='ali') {
$newData[$v['name']]['ali'] = $v['price'];
} elseif ($v['type']=='other') {
$newData[$v['name']]['other'] = $v['price'];
}
} else {
$newData[$v['name']]['recharge'] = $v['price'];
$newData[$v['name']]['recharge_num'] = 1;
if($v['type']=='wx') {
$newData[$v['name']]['wx'] = $v['price'];
} elseif ($v['type']=='ali') {
$newData[$v['name']]['ali'] = $v['price'];
} elseif ($v['type']=='other') {
$newData[$v['name']]['other'] = $v['price'];
}
}
}
}
装成$combineData; count=recharge+trade; trade是tradeData下的某个人的price的和;recharge是rechargeData下某个人的price的和;count:总计,统计某人的充值和交易的price和trade指的交易钱数,recharge充值钱数,trade_num指的是交易笔数,recharge_num指的是充值笔数.
如果是我的话会这么写: