PHP——數組根據某一鍵值合並


前言

其實要實現很簡單直接foreach,再根據PHP中數組的特性就可以輕松實現。

步驟

這是源數據的格式

$info = [
    [
        "gname" => "特別關心" ,
        "gid" => 1, "fid" => 2,
        "nickname" => "立冬" ,
        "avatar" => "http://cache.wangyangyang.vip/avatar_4.gif",
        "remark" => "" ,
        "desc" => "雪花一片一片的灑落在窗台上,田野間,為大地換上了新裝~"
    ],
    [
        "gname" => "我的好友",
        "gid" => 2,
        "fid" => 3,
        "nickname" => "立春",
        "avatar" => "http://cache.wangyangyang.vip/avatar_3.jpg",
        "remark" => "",
        "desc" => "我在春天等着你的到來~"
    ],

   [
        "gname" => "朋友" ,
        "gid" => 3,
        "fid" => 4,
        "nickname" => "立夏" ,
        "avatar" => "http://cache.wangyangyang.vip/12222222222222.jpg" ,
        "remark" => "" ,
        "desc" => "你好啊,夏天!"
    ],

   [
        "gname" => "同學" ,
        "gid" => 4,
        "fid" => 5,
        "nickname" => "小雨" ,
        "avatar" =>  "http://cache.wangyangyang.vip/avatar_5.jpg" ,
        "remark" => "" ,
        "desc" => "人間四月芳菲盡,山寺桃花始盛開!"
    ],
   [
        "gname" =>"同學" ,
        "gid" => 4,
        "fid" => 6,
        "nickname" => "殘雪殤" ,
        "avatar" => "http://cache.wangyangyang.vip/12222222222222.jpg" ,
        "remark" => "小雪" ,
        "desc" => "斷橋殘雪,三潭映月,君可知為何如此?"
    ]
]

合並后的數據

將數組中某一個相同的值作為鍵,然后生成一個新的三維數組

 $list = [];
 foreach ($info as $k => $v) {
    $list[$v['gid']]['gid'] = $v['gid'];
    $list[$v['gid']]['gname'] = $v['gname'];
    $list[$v['gid']]['list'][] = $v;
 }              

得到數據

$list=[
      1=>[
        "gid"=>1,
        "gname"=> "特別關心",
        "list"=>[
          [
            "gname"=>"特別關心",
            "gid"=>1,
            "fid"=>2,
            "nickname"=>"立冬",
            "avatar"=>"http://cache.wangyangyang.vip/avatar_4.gif",
            "remark"=>"",
            "desc"=>"雪花一片一片的灑落在窗台上,田野間,為大地換上了新裝~"
          ]
        ]
      ],
     2=> [
        "gid"=>2,
        "gname"=> "我的好友",
        "list"=>[
          [
            "gname"=>"我的好友",
            "gid"=>2,
            "fid"=>3,
            "nickname"=> "立春",
            "avatar"=>"http://cache.wangyangyang.vip/avatar_3.jpg",
            "remark"=>"",
            "desc"=> "我在春天等着你的到來~"
          ]
        ]
      ],
      3=>[
        "gid"=>3,
        "gname"=>"朋友",
        "list"=>[
         [
            "gname"=>"朋友",
            "gid"=>3,
            "fid"=>4,
            "nickname"=> "立夏",
            "avatar"=> "http://cache.wangyangyang.vip/12222222222222.jpg",
            "remark"=> "",
            "desc"=>"你好啊,夏天!"
          ]
        ]
      ],
     4=>[
        "gid"=>4,
        "gname"=>"同學",
        "list"=>[
          [
            "gname"=>"同學",
            "gid"=>4,
            "fid"=>5,
            "nickname"=>"小雨",
            "avatar"=>"http://cache.wangyangyang.vip/avatar_5.jpg",
            "remark"=> "",
            "desc"=>"人間四月芳菲盡,山寺桃花始盛開!"
          ],
          [
            "gname"=> "同學",
            "gid"=>4,
            "fid"=>6,
            "nickname"=>"殘雪殤",
            "avatar"=>"http://cache.wangyangyang.vip/12222222222222.jpg",
            "remark"=> "小雪",
            "desc"=>"斷橋殘雪,三潭映月,君可知為何如此?"
          ]
        ]
      ]
    ]


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM