前言
其實要實現很簡單直接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"=>"斷橋殘雪,三潭映月,君可知為何如此?"
]
]
]
]