php二维数组相同项的合并

本文帮助一些刚接触php不太会数组处理的新人们快速的合并数组,
经常发现处理数组时,取出一大条单独的数据,但是但是展示的时候却需要展示在一行内,今天就带了可以直接合并相同数据为一条的(比如有十条数据中除了爱好不同其他都相同,下面方法能把爱好数据集中在一行,把十条数据整合为一条)

public function merge($result,$id,$code)
        {
            //声明空数组
            $a=[];
            //排除传递过来的参数
            $b=array_keys($result[0]);
            $key=array_search($id,$b);
            array_splice($b,$key,1);
            $key=array_search($code,$b);
            array_splice($b,$key,1);
            foreach ($result as $k => $v) {
                if(!array_key_exists($v[$id],$a)){
                    $a[$v[$id]] = [];
                }
                if(!array_key_exists($code,$a[$v[$id]])){
                    $a[$v[$id]][$code] = '';
                }
                $a[$v[$id]][$code]=$a[$v[$id]][$code].' '.$v[$code];
                $a[$v[$id]][$id]=$v[$id];
                for ($i=0; $i < count($b); $i++) { 
                    $a[$v[$id]][$b[$i]]=$v[$b[$i]];
                }
            }
            return $a;
        }
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值