PHP合并数组,每组有有一列用来对比

$ele_cash = $model->col_ele_cash($siteID,$begin_time,$end_time);//获取电子面单现结信息
        $ele_customer = $model->col_ele_customer($siteID,$begin_time,$end_time);//获取电子面单客户月结信息

        $papre_cash_data = $model->col_paper_cash_data($siteID,$begin_time,$end_time);//获取纸质面单现结信息
        $papre_customer_data = $model->col_paper_customer_data($siteID,$begin_time,$end_time);//获取纸质面单客户月结信息

        $res = array();
        foreach ($ele_cash as $k => $v){
            $res[$k]['user_handover_pname'] = $v['user_handover_pname'];
            $res[$k]['cash_cou'] = $v['cash_cou'];
            $res[$k]['cash_total'] = $v['cash_total'];
            $res[$k]['cash_cost'] = $v['cash_cost'];
            $res[$k]['cash_profit'] = $v['cash_profit'];
        }

        $i = count($res);
        $name1 = array_column($res, 'user_handover_pname');
        foreach ($ele_customer as $k2 => $v2){
            if(in_array($v2['user_handover_pname'],$name1)){

                foreach ($res as $a => $b){
                    if($b['user_handover_pname'] == $v2['user_handover_pname']){
                        $res[$a]['cus_cou'] = $v2['cus_cou'];
                        $res[$a]['cus_total'] = $v2['cus_total'];
                        $res[$a]['cus_cost'] = $v2['cus_cost'];
                        $res[$a]['cus_profit'] = $v2['cus_profit'];
                    }
                }
            }else{
                $res[$i+1]['user_handover_pname'] = $v2['user_handover_pname'];
                $res[$i+1]['cus_cou'] = $v2['cus_cou'];
                $res[$i+1]['cus_total'] = $v2['cus_total'];
                $res[$i+1]['cus_cost'] = $v2['cus_cost'];
                $res[$i+1]['cus_profit'] = $v2['cus_profit'];
                $i++;
            }
        }


        $m = count($res);
        $name2 = array_column($res, 'user_handover_pname');
        foreach ($papre_cash_data as $k3 => $v3){
            if(in_array($v3['user_handover_pname'],$name2)){

                foreach ($res as $a => $b){
                    if($b['user_handover_pname'] == $v3['user_handover_pname']){
                        $res[$a]['paper_cash_num'] = $v3['paper_cash_num'];
                    }
                }
            }else{
                $res[$m+1]['user_handover_pname'] = $v3['user_handover_pname'];
                $res[$m+1]['paper_cash_num'] = $v3['paper_cash_num'];
                $m++;
            }
        }

        $n = count($res);
        $name3 = array_column($res, 'user_handover_pname');
        foreach ($papre_customer_data as $k4 => $v4){
            if(in_array($v4['user_handover_pname'],$name3)){

                foreach ($res as $a => $b){
                    if($b['user_handover_pname'] == $v4['user_handover_pname']){
                        $res[$a]['paper_cus_num'] = $v4['paper_cus_num'];
                    }
                }
            }else{
                $res[$n+1]['user_handover_pname'] = $v4['user_handover_pname'];
                $res[$n+1]['paper_cus_num'] = $v4['paper_cus_num'];
                $n++;
            }
        }

        //重整数组格式
        $data = array();

        foreach ($res as $v){
            $user = $v['user_handover_pname'];
            $temp['user_handover_pname'] = $v['user_handover_pname'];
            $temp['username'] = $model->sel_username($user);//获取电子面单现结信息
            $temp['cas_cou'] = $v['cash_cou'];
            $temp['total_charge'] = $v['cash_total'];
            $temp['cost'] = $v['cash_cost'];
            $temp['profit'] = $v['cash_profit'];
            $temp['ele_cus_cou'] = $v['cus_cou'];
            $temp['ele_cus_charge'] = $v['cus_total'];
            $temp['ele_cus_cost'] = $v['cus_cost'];
            $temp['ele_cus_profit'] = $v['cus_profit'];
            $temp['paper_cash_num'] = $v['paper_cash_num'];
            $temp['paper_cus_num'] = $v['paper_cus_num'];
            $data[] = $temp;
        }

每个数组中都有user_handover_pname字段,但其中的值不一定相同。每次把name放入数字,遍历剩余的数组进行组合。最后重整数组。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值