數(shù)組實(shí)例--把鍵相同的數(shù)組合并

場(chǎng)景,把鍵相同的多個(gè)數(shù)組,合并到鍵下面的多個(gè)數(shù)組里面,圖一是原數(shù)組,圖二是我們想要的結(jié)果數(shù)組

圖1,原數(shù)組
圖22,我們想要的結(jié)果

代碼

    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;
    }

雖然這個(gè)問(wèn)題很簡(jiǎn)單,但是我費(fèi)了好多時(shí)間。但是把解決思路做個(gè)總結(jié)吧。對(duì)于以后的思考會(huì)有幫助

思路1,我想得到鍵。取相同的鍵。第1步測(cè)試,我想得到鍵。那么我們先試試打印$key值。我們發(fā)現(xiàn)不是想要的結(jié)果

第一步,打印$key值

思路1,第2步測(cè)試,我們打印$value看看。發(fā)現(xiàn)也不是我們要的結(jié)果。但是我們把數(shù)組點(diǎn)開(kāi)后。發(fā)現(xiàn)這個(gè)$value再遍歷一次,即可得到我們想要的鍵

打印$value

思路1,第三步測(cè)試。我們打印$key1,查看下,得到了我們要的鍵。

打印$key1

思路2,第一步測(cè)試.找到了相同的鍵,我們先把此處鍵對(duì)應(yīng)的的$value1打印看下吧

打印$value1

思路2結(jié)果分析。我們得到了我們想要的值,只是鍵不是我們想要的。但是鍵,我們已經(jīng)在思路1的測(cè)試3里面找到了。所以我們可在此處的數(shù)組前面再加上我們的鍵,即可得到我們的結(jié)果 $result[$key1][] = $value1;。于是我們就有了test3()函數(shù)

    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;
    }

思考,

有時(shí)候我們想不通的時(shí)候,我們可以先把結(jié)果自己寫(xiě)出來(lái),然后從結(jié)果上,
往上一層層尋找自己需要的信息。一般都可以寫(xiě)出來(lái)自己需要的函數(shù)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,996評(píng)論 25 709
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,545評(píng)論 19 139
  • 轉(zhuǎn)自:http://bbs.redis.cn/forum.php?mod=viewthread&tid=481 p...
    木十2036閱讀 1,173評(píng)論 0 7
  • 碎石裹著苔蘚,陡崖與枝蔓比肩,陌生的巢窩高懸。 那人芊手撫劍,他名與誓言輕念,酸澀的花酒難咽。 入暮只剩孤雁,發(fā)簪...
    二兩摩卡閱讀 308評(píng)論 2 3
  • 在蘋(píng)果商店搜索:Sleep Cycle 睡眠循環(huán) 太愛(ài)這個(gè)鬧鐘了,它可以在你淺度睡眠的時(shí)間叫醒你,讓你醒來(lái)后神清氣...
    嚴(yán)小孩閱讀 444評(píng)論 0 0

友情鏈接更多精彩內(nèi)容