数组实例--把键相同的数组合并

场景,把键相同的多个数组,合并到键下面的多个数组里面,图一是原数组,图二是我们想要的结果数组

图1,原数组
图22,我们想要的结果

代码

    public function test()
    {
        $arr = [
            [ 1 => [ 1 , 11 ], ],
            [ 1 => [ 11 , 22 ], ],
            [ 1 => [ 3 , 33 ], ],
            [ 2 => [ 2 , 11 ], ],
            [ 2 => [ 2 , 22 ], ],
            [ 3 => [ 3 , 33 ], ],
        ];
            $data = $this->test3($arr);
            dd($arr1);
    }
    public function test3($arr)
    {
        foreach ($arr as $key => $value)
        {
                foreach ($value as $key1 => $value1){
                        $result[$key1][] = $value1;
                }
        }

        return $result;
    }

虽然这个问题很简单,但是我费了好多时间。但是把解决思路做个总结吧。对于以后的思考会有帮助

思路1,我想得到键。取相同的键。第1步测试,我想得到键。那么我们先试试打印$key值。我们发现不是想要的结果

第一步,打印$key值

思路1,第2步测试,我们打印$value看看。发现也不是我们要的结果。但是我们把数组点开后。发现这个$value再遍历一次,即可得到我们想要的键

打印$value

思路1,第三步测试。我们打印$key1,查看下,得到了我们要的键。

打印$key1

思路2,第一步测试.找到了相同的键,我们先把此处键对应的的$value1打印看下吧

打印$value1

思路2结果分析。我们得到了我们想要的值,只是键不是我们想要的。但是键,我们已经在思路1的测试3里面找到了。所以我们可在此处的数组前面再加上我们的键,即可得到我们的结果 $result[$key1][] = $value1;。于是我们就有了test3()函数

    public function test()
    {
        $arr = [
            [ 1 => [ 1 , 11 ], ],
            [ 1 => [ 11 , 22 ], ],
            [ 1 => [ 3 , 33 ], ],
            [ 2 => [ 2 , 11 ], ],
            [ 2 => [ 2 , 22 ], ],
            [ 3 => [ 3 , 33 ], ],
        ];
            $data = $this->test3($arr);
            dd($data);
    }
    public function test3($arr)
    {
        $result = array();
        foreach ($arr as $key => $value)
        {

                foreach ($value as $key1 => $value1){
                        $result[$key1][] = $value1;
                }
        }

        return $result;
    }

思考,

有时候我们想不通的时候,我们可以先把结果自己写出来,然后从结果上,
往上一层层寻找自己需要的信息。一般都可以写出来自己需要的函数
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,149评论 25 709
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,323评论 19 139
  • 转自:http://bbs.redis.cn/forum.php?mod=viewthread&tid=481 p...
    木十2036阅读 4,340评论 0 7
  • 碎石裹着苔藓,陡崖与枝蔓比肩,陌生的巢窝高悬。 那人芊手抚剑,他名与誓言轻念,酸涩的花酒难咽。 入暮只剩孤雁,发簪...
    二两摩卡阅读 1,722评论 2 3
  • 在苹果商店搜索:Sleep Cycle 睡眠循环 太爱这个闹钟了,它可以在你浅度睡眠的时间叫醒你,让你醒来后神清气...
    严小孩阅读 3,021评论 0 0