php处理二维数组, 按照某个字段合并重复的,其余字段中部分字段保留,部分相加

本文系转载:
原文链接:https://www.cnblogs.com/pansidong/p/10132483.html
//处理二维数组, 按照某个字段合并重复的,其余字段中部分字段保留,部分相加

public function deal_erwei_arr(){

        $param =  array(
            array (
                'hykno'         => '2222222-CB',
                'tcdk_fid'      => '458B6D70-FB7F-47AE-8356-777777777777',
                'totalamount'   => '0',
                'offsetamount'  => '90.0',
                'postamount'    => '0',
                'hysyamout'     => '10.0',
                'protypeid'     => '1',
            ),
            array (
                'hykno'         => '2222222-CB',
                'tcdk_fid'      => '458B6D70-FB7F-47AE-8356-777777777777',
                'totalamount'   => '0',           // 需要支付的钱
                'offsetamount'  => '5.0',        // 抵扣分类1下5.0份;
                'postamount'    => '0',            // 运费
                'hysyamout'     => '5.0',
                'protypeid'     => '1',
            ),
            array (
                'hykno'         => '2222222-CB',
                'tcdk_fid'      => '458B6D70-FB7F-47AE-8356-777777777777',
                'totalamount'   => '0',           // 需要支付的钱
                'offsetamount'  => '5.0',        // 抵扣分类1下5.0份;
                'postamount'    => '0',            // 运费
                'hysyamout'     => '5.0',
                'protypeid'     => '7',
            ),
            array (
                'hykno'         => '2222222-CB',
                'tcdk_fid'      => '458B6D70-FB7F-47AE-8356-777777777777',
                'totalamount'   => '0',           // 需要支付的钱
                'offsetamount'  => '5.0',        // 抵扣分类1下5.0份;
                'postamount'    => '0',            // 运费
                'hysyamout'     => '5.0',
                'protypeid'     => '3',
            )
        );

        $u = array();
        foreach ($param as $k => $v){
            if (!in_array($v['protypeid'],$u)){
                $u[] = $v['protypeid'];
            }
        }

        $data = array();
        foreach ($u as $uk => $uv)
        {
            foreach ($param as $pk => $pv)
            {
                if ($pv['protypeid'] == $uv)
                {
                    $data[$uv]['hykno'] = $pv['hykno'];
                    $data[$uv]['totalamount'] += $pv['totalamount'];
                    $data[$uv]['offsetamount'] += $pv['offsetamount'];
                    $data[$uv]['postamount'] += $pv['postamount'];
                    $data[$uv]['hysyamout'] += $pv['hysyamout'];
                    $data[$uv]['protypeid'] = $pv['protypeid'];
                }
            }
        }

        $data = array_values($data);

        dump($data);


    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值