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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_36020968/article/details/88645493
$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放入数字,遍历剩余的数组进行组合。最后重整数组。

猜你喜欢

转载自blog.csdn.net/qq_36020968/article/details/88645493