首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >PHP——数组根据某一键值合并

PHP——数组根据某一键值合并

作者头像
思索
发布2024-08-16 12:24:22
发布2024-08-16 12:24:22
5260
举报

前言

其实要实现很简单直接foreach,再根据PHP中数组的特性就可以轻松实现。

步骤

这是源数据的格式

代码语言:javascript
复制
$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" => "断桥残雪,三潭映月,君可知为何如此?"
    ]
]

合并后的数据

将数组中某一个相同的值作为键,然后生成一个新的三维数组

代码语言:javascript
复制
 $list = [];
 foreach ($info as $k => $v) {
    $list[$v['gid']]['gid'] = $v['gid'];
    $list[$v['gid']]['gname'] = $v['gname'];
    $list[$v['gid']]['list'][] = $v;
 }              

得到数据

代码语言:javascript
复制
$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"=>"断桥残雪,三潭映月,君可知为何如此?"
          ]
        ]
      ]
    ]
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-08-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 步骤
    • 合并后的数据
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档