求教二维数组转多维数组的函数
程序员文章站
2022-04-24 12:04:33
...
php查询显示数据库中的菜单表的数据,生成二维数据,我想通过数组处理,把子菜单作为父菜单的一个键值进行组合,哪位帮我实现一下,非常感谢!简单的说就是下面的数组重新组合成后面的.
原数组
Array
(
[0] => Array
(
[id] => 1
[pid] => 0
[name] => /Admin/Index/home
[title] => 管理首页
[type] => 1
[icon] => clone
[status] => 1
[condition] =>
[sort] => 1
)
[1] => Array
(
[id] => 14
[pid] => 13
[name] => /Admin/Cate/index
[title] => 分类管理
[type] => 1
[icon] => clone
[status] => 1
[condition] =>
[sort] => 1
)
[2] => Array
(
[id] => 3
[pid] => 2
[name] => /Admin/Set/webset
[title] => 系统设置
[type] => 1
[icon] => mobile
[status] => 1
[condition] =>
[sort] => 1
)
[3] => Array
(
[id] => 21
[pid] => 20
[name] => /Admin/Other/comment
[title] => 评论管理
[type] => 1
[icon] => user
[status] => 1
[condition] =>
[sort] => 1
)
[4] => Array
(
[id] => 15
[pid] => 13
[name] => /Admin/Cate/add
[title] => 分类添加
[type] => 1
[icon] => plus
[status] => 1
[condition] =>
[sort] => 2
)
[5] => Array
(
[id] => 22
[pid] => 20
[name] => /Admin/Other/number
[title] => 注册码管理
[type] => 1
[icon] => bars
[status] => 1
[condition] =>
[sort] => 2
)
[6] => Array
(
[id] => 4
[pid] => 2
[name] => /Admin/Set/user
[title] => 用户管理
[type] => 1
[icon] => users
[status] => 1
[condition] =>
[sort] => 2
)
[7] => Array
(
[id] => 2
[pid] => 0
[name] =>
[title] => 网站设置
[type] => 1
[icon] => shopping-cart
[status] => 1
[condition] =>
[sort] => 2
)
[8] => Array
(
[id] => 23
[pid] => 20
[name] => /Admin/Other/gbook
[title] => 留言管理
[type] => 1
[icon] => send-o
[status] => 1
[condition] =>
[sort] => 3
)
[9] => Array
(
[id] => 16
[pid] => 13
[name] => /Admin/Info/index
[title] => 信息管理
[type] => 1
[icon] => check-square
[status] => 1
[condition] =>
[sort] => 3
)
[10] => Array
(
[id] => 13
[pid] => 0
[name] =>
[title] => 内容管理
[type] => 1
[icon] => comments-o
[status] => 1
[condition] =>
[sort] => 3
)
[11] => Array
(
[id] => 5
[pid] => 2
[name] => /Admin/Set/email
[title] => 邮件设置
[type] => 1
[icon] => weixin
[status] => 1
[condition] =>
[sort] => 3
)
[12] => Array
(
[id] => 6
[pid] => 2
[name] => /Admin/Set/mysql
[title] => 数据库设置
[type] => 1
[icon] => thumbs-up
[status] => 1
[condition] =>
[sort] => 4
)
[13] => Array
(
[id] => 20
[pid] => 0
[name] =>
[title] => 扩展功能
[type] => 1
[icon] => cubes
[status] => 1
[condition] =>
[sort] => 4
)
[14] => Array
(
[id] => 17
[pid] => 13
[name] => /Admin/Info/infoadd
[title] => 信息添加
[type] => 1
[icon] => users
[status] => 1
[condition] =>
[sort] => 4
)
[15] => Array
(
[id] => 24
[pid] => 20
[name] => /Admin/Tpl/index
[title] => 模板管理
[type] => 1
[icon] => users
[status] => 1
[condition] =>
[sort] => 4
)
[16] => Array
(
[id] => 25
[pid] => 20
[name] => /Admin/Other/linkindex
[title] => 链接管理
[type] => 1
[icon] => weixin
[status] => 1
[condition] =>
[sort] => 5
)
[17] => Array
(
[id] => 18
[pid] => 13
[name] => /Admin/Info/page
[title] => 单页管理
[type] => 1
[icon] => cubes
[status] => 1
[condition] =>
[sort] => 5
)
[18] => Array
(
[id] => 29
[pid] => 0
[name] => /Admin/Index/delcache
[title] => 删除缓存
[type] => 1
[icon] => cog
[status] => 1
[condition] =>
[sort] => 5
)
[19] => Array
(
[id] => 7
[pid] => 2
[name] => /Admin/Data/backupform
[title] => 数据库备份
[type] => 1
[icon] => cog
[status] => 1
[condition] =>
[sort] => 5
)
[20] => Array
(
[id] => 26
[pid] => 20
[name] => /Admin/Other/linkadd
[title] => 链接添加
[type] => 1
[icon] => users
[status] => 1
[condition] =>
[sort] => 6
)
[21] => Array
(
[id] => 30
[pid] => 0
[name] => /Admin/Lognn/logout
[title] => 退出登录
[type] => 1
[icon] => refresh
[status] => 1
[condition] =>
[sort] => 6
)
[22] => Array
(
[id] => 19
[pid] => 13
[name] => /Admin/Info/pageadd
[title] => 单页添加
[type] => 1
[icon] => book
[status] => 1
[condition] =>
[sort] => 6
)
[23] => Array
(
[id] => 8
[pid] => 2
[name] => /Admin/Set/url
[title] => URL模式设置
[type] => 1
[icon] => refresh
[status] => 1
[condition] =>
[sort] => 6
)
[24] => Array
(
[id] => 9
[pid] => 2
[name] => /Admin/Set/theme
[title] => 主题设置
[type] => 1
[icon] => bars
[status] => 1
[condition] =>
[sort] => 7
)
[25] => Array
(
[id] => 27
[pid] => 20
[name] => /Admin/Notice/index
[title] => 广告管理
[type] => 1
[icon] => weixin
[status] => 1
[condition] =>
[sort] => 7
)
[26] => Array
(
[id] => 10
[pid] => 2
[name] => /Admin/Set/image
[title] => 图片上传设置
[type] => 1
[icon] => th
[status] => 1
[condition] =>
[sort] => 8
)
[27] => Array
(
[id] => 28
[pid] => 20
[name] => /Admin/Index/sitemap
[title] => sitemap生成
[type] => 1
[icon] => thumbs-up
[status] => 1
[condition] =>
[sort] => 8
)
[28] => Array
(
[id] => 11
[pid] => 2
[name] => /Admin/Set/path
[title] => 相关路径设置
[type] => 1
[icon] => check-square
[status] => 1
[condition] =>
[sort] => 9
)
[29] => Array
(
[id] => 12
[pid] => 2
[name] => /Admin/Amenu/index
[title] => 后台菜单管理
[type] => 1
[icon] => recycle
[status] => 1
[condition] =>
[sort] => 10
)
)
Array
(
[0] => Array
(
[id] => 1
[pid] => 0
[name] => /Admin/Index/home
[title] => 管理首页
[type] => 1
[icon] => clone
[status] => 1
[condition] =>
[sort] => 1
)
[1] => Array
(
[id] => 2
[pid] => 0
[name] =>
[title] => 网站设置
[type] => 1
[icon] => shopping-cart
[status] => 1
[condition] =>
[sort] => 2
[submenu] => Array
(
[0] => Array
(
[id] => 3
[pid] => 2
[name] => /Admin/Set/webset
[title] => 系统设置
[type] => 1
[icon] => mobile
[status] => 1
[condition] =>
[sort] => 1
)
[1] => Array
(
[id] => 4
[pid] => 2
[name] => /Admin/Set/user
[title] => 用户管理
[type] => 1
[icon] => users
[status] => 1
[condition] =>
[sort] => 2
)
[2] => Array
(
[id] => 5
[pid] => 2
[name] => /Admin/Set/email
[title] => 邮件设置
[type] => 1
[icon] => weixin
[status] => 1
[condition] =>
[sort] => 3
)
[3] => Array
(
[id] => 6
[pid] => 2
[name] => /Admin/Set/mysql
[title] => 数据库设置
[type] => 1
[icon] => thumbs-up
[status] => 1
[condition] =>
[sort] => 4
)
[4] => Array
(
[id] => 7
[pid] => 2
[name] => /Admin/Data/backupform
[title] => 数据库备份
[type] => 1
[icon] => cog
[status] => 1
[condition] =>
[sort] => 5
)
[5] => Array
(
[id] => 8
[pid] => 2
[name] => /Admin/Set/url
[title] => URL模式设置
[type] => 1
[icon] => refresh
[status] => 1
[condition] =>
[sort] => 6
)
[6] => Array
(
[id] => 9
[pid] => 2
[name] => /Admin/Set/theme
[title] => 主题设置
[type] => 1
[icon] => bars
[status] => 1
[condition] =>
[sort] => 7
)
[7] => Array
(
[id] => 10
[pid] => 2
[name] => /Admin/Set/image
[title] => 图片上传设置
[type] => 1
[icon] => th
[status] => 1
[condition] =>
[sort] => 8
)
[8] => Array
(
[id] => 11
[pid] => 2
[name] => /Admin/Set/path
[title] => 相关路径设置
[type] => 1
[icon] => check-square
[status] => 1
[condition] =>
[sort] => 9
)
[9] => Array
(
[id] => 12
[pid] => 2
[name] => /Admin/Amenu/index
[title] => 后台菜单管理
[type] => 1
[icon] => recycle
[status] => 1
[condition] =>
[sort] => 10
)
)
)
[2] => Array
(
[id] => 13
[pid] => 0
[name] =>
[title] => 内容管理
[type] => 1
[icon] => comments-o
[status] => 1
[condition] =>
[sort] => 3
[submenu] => Array
(
[0] => Array
(
[id] => 14
[pid] => 13
[name] => /Admin/Cate/index
[title] => 分类管理
[type] => 1
[icon] => clone
[status] => 1
[condition] =>
[sort] => 1
)
[1] => Array
(
[id] => 15
[pid] => 13
[name] => /Admin/Cate/add
[title] => 分类添加
[type] => 1
[icon] => plus
[status] => 1
[condition] =>
[sort] => 2
)
[2] => Array
(
[id] => 16
[pid] => 13
[name] => /Admin/Info/index
[title] => 信息管理
[type] => 1
[icon] => check-square
[status] => 1
[condition] =>
[sort] => 3
)
[3] => Array
(
[id] => 17
[pid] => 13
[name] => /Admin/Info/infoadd
[title] => 信息添加
[type] => 1
[icon] => users
[status] => 1
[condition] =>
[sort] => 4
)
[4] => Array
(
[id] => 18
[pid] => 13
[name] => /Admin/Info/page
[title] => 单页管理
[type] => 1
[icon] => cubes
[status] => 1
[condition] =>
[sort] => 5
)
[5] => Array
(
[id] => 19
[pid] => 13
[name] => /Admin/Info/pageadd
[title] => 单页添加
[type] => 1
[icon] => book
[status] => 1
[condition] =>
[sort] => 6
)
)
)
[3] => Array
(
[id] => 20
[pid] => 0
[name] =>
[title] => 扩展功能
[type] => 1
[icon] => cubes
[status] => 1
[condition] =>
[sort] => 4
[submenu] => Array
(
[0] => Array
(
[id] => 21
[pid] => 20
[name] => /Admin/Other/comment
[title] => 评论管理
[type] => 1
[icon] => user
[status] => 1
[condition] =>
[sort] => 1
)
[1] => Array
(
[id] => 22
[pid] => 20
[name] => /Admin/Other/number
[title] => 注册码管理
[type] => 1
[icon] => bars
[status] => 1
[condition] =>
[sort] => 2
)
[2] => Array
(
[id] => 23
[pid] => 20
[name] => /Admin/Other/gbook
[title] => 留言管理
[type] => 1
[icon] => send-o
[status] => 1
[condition] =>
[sort] => 3
)
[3] => Array
(
[id] => 24
[pid] => 20
[name] => /Admin/Tpl/index
[title] => 模板管理
[type] => 1
[icon] => users
[status] => 1
[condition] =>
[sort] => 4
)
[4] => Array
(
[id] => 25
[pid] => 20
[name] => /Admin/Other/linkindex
[title] => 链接管理
[type] => 1
[icon] => weixin
[status] => 1
[condition] =>
[sort] => 5
)
[5] => Array
(
[id] => 26
[pid] => 20
[name] => /Admin/Other/linkadd
[title] => 链接添加
[type] => 1
[icon] => users
[status] => 1
[condition] =>
[sort] => 6
)
[6] => Array
(
[id] => 27
[pid] => 20
[name] => /Admin/Notice/index
[title] => 广告管理
[type] => 1
[icon] => weixin
[status] => 1
[condition] =>
[sort] => 7
)
[7] => Array
(
[id] => 28
[pid] => 20
[name] => /Admin/Index/sitemap
[title] => sitemap生成
[type] => 1
[icon] => thumbs-up
[status] => 1
[condition] =>
[sort] => 8
)
)
)
[4] => Array
(
[id] => 29
[pid] => 0
[name] => /Admin/Index/delcache
[title] => 删除缓存
[type] => 1
[icon] => cog
[status] => 1
[condition] =>
[sort] => 5
)
[5] => Array
(
[id] => 30
[pid] => 0
[name] => /Admin/Lognn/logout
[title] => 退出登录
[type] => 1
[icon] => refresh
[status] => 1
[condition] =>
[sort] => 6
)
)
回复内容:
php查询显示数据库中的菜单表的数据,生成二维数据,我想通过数组处理,把子菜单作为父菜单的一个键值进行组合,哪位帮我实现一下,非常感谢!简单的说就是下面的数组重新组合成后面的.
原数组
Array
(
[0] => Array
(
[id] => 1
[pid] => 0
[name] => /Admin/Index/home
[title] => 管理首页
[type] => 1
[icon] => clone
[status] => 1
[condition] =>
[sort] => 1
)
[1] => Array
(
[id] => 14
[pid] => 13
[name] => /Admin/Cate/index
[title] => 分类管理
[type] => 1
[icon] => clone
[status] => 1
[condition] =>
[sort] => 1
)
[2] => Array
(
[id] => 3
[pid] => 2
[name] => /Admin/Set/webset
[title] => 系统设置
[type] => 1
[icon] => mobile
[status] => 1
[condition] =>
[sort] => 1
)
[3] => Array
(
[id] => 21
[pid] => 20
[name] => /Admin/Other/comment
[title] => 评论管理
[type] => 1
[icon] => user
[status] => 1
[condition] =>
[sort] => 1
)
[4] => Array
(
[id] => 15
[pid] => 13
[name] => /Admin/Cate/add
[title] => 分类添加
[type] => 1
[icon] => plus
[status] => 1
[condition] =>
[sort] => 2
)
[5] => Array
(
[id] => 22
[pid] => 20
[name] => /Admin/Other/number
[title] => 注册码管理
[type] => 1
[icon] => bars
[status] => 1
[condition] =>
[sort] => 2
)
[6] => Array
(
[id] => 4
[pid] => 2
[name] => /Admin/Set/user
[title] => 用户管理
[type] => 1
[icon] => users
[status] => 1
[condition] =>
[sort] => 2
)
[7] => Array
(
[id] => 2
[pid] => 0
[name] =>
[title] => 网站设置
[type] => 1
[icon] => shopping-cart
[status] => 1
[condition] =>
[sort] => 2
)
[8] => Array
(
[id] => 23
[pid] => 20
[name] => /Admin/Other/gbook
[title] => 留言管理
[type] => 1
[icon] => send-o
[status] => 1
[condition] =>
[sort] => 3
)
[9] => Array
(
[id] => 16
[pid] => 13
[name] => /Admin/Info/index
[title] => 信息管理
[type] => 1
[icon] => check-square
[status] => 1
[condition] =>
[sort] => 3
)
[10] => Array
(
[id] => 13
[pid] => 0
[name] =>
[title] => 内容管理
[type] => 1
[icon] => comments-o
[status] => 1
[condition] =>
[sort] => 3
)
[11] => Array
(
[id] => 5
[pid] => 2
[name] => /Admin/Set/email
[title] => 邮件设置
[type] => 1
[icon] => weixin
[status] => 1
[condition] =>
[sort] => 3
)
[12] => Array
(
[id] => 6
[pid] => 2
[name] => /Admin/Set/mysql
[title] => 数据库设置
[type] => 1
[icon] => thumbs-up
[status] => 1
[condition] =>
[sort] => 4
)
[13] => Array
(
[id] => 20
[pid] => 0
[name] =>
[title] => 扩展功能
[type] => 1
[icon] => cubes
[status] => 1
[condition] =>
[sort] => 4
)
[14] => Array
(
[id] => 17
[pid] => 13
[name] => /Admin/Info/infoadd
[title] => 信息添加
[type] => 1
[icon] => users
[status] => 1
[condition] =>
[sort] => 4
)
[15] => Array
(
[id] => 24
[pid] => 20
[name] => /Admin/Tpl/index
[title] => 模板管理
[type] => 1
[icon] => users
[status] => 1
[condition] =>
[sort] => 4
)
[16] => Array
(
[id] => 25
[pid] => 20
[name] => /Admin/Other/linkindex
[title] => 链接管理
[type] => 1
[icon] => weixin
[status] => 1
[condition] =>
[sort] => 5
)
[17] => Array
(
[id] => 18
[pid] => 13
[name] => /Admin/Info/page
[title] => 单页管理
[type] => 1
[icon] => cubes
[status] => 1
[condition] =>
[sort] => 5
)
[18] => Array
(
[id] => 29
[pid] => 0
[name] => /Admin/Index/delcache
[title] => 删除缓存
[type] => 1
[icon] => cog
[status] => 1
[condition] =>
[sort] => 5
)
[19] => Array
(
[id] => 7
[pid] => 2
[name] => /Admin/Data/backupform
[title] => 数据库备份
[type] => 1
[icon] => cog
[status] => 1
[condition] =>
[sort] => 5
)
[20] => Array
(
[id] => 26
[pid] => 20
[name] => /Admin/Other/linkadd
[title] => 链接添加
[type] => 1
[icon] => users
[status] => 1
[condition] =>
[sort] => 6
)
[21] => Array
(
[id] => 30
[pid] => 0
[name] => /Admin/Lognn/logout
[title] => 退出登录
[type] => 1
[icon] => refresh
[status] => 1
[condition] =>
[sort] => 6
)
[22] => Array
(
[id] => 19
[pid] => 13
[name] => /Admin/Info/pageadd
[title] => 单页添加
[type] => 1
[icon] => book
[status] => 1
[condition] =>
[sort] => 6
)
[23] => Array
(
[id] => 8
[pid] => 2
[name] => /Admin/Set/url
[title] => URL模式设置
[type] => 1
[icon] => refresh
[status] => 1
[condition] =>
[sort] => 6
)
[24] => Array
(
[id] => 9
[pid] => 2
[name] => /Admin/Set/theme
[title] => 主题设置
[type] => 1
[icon] => bars
[status] => 1
[condition] =>
[sort] => 7
)
[25] => Array
(
[id] => 27
[pid] => 20
[name] => /Admin/Notice/index
[title] => 广告管理
[type] => 1
[icon] => weixin
[status] => 1
[condition] =>
[sort] => 7
)
[26] => Array
(
[id] => 10
[pid] => 2
[name] => /Admin/Set/image
[title] => 图片上传设置
[type] => 1
[icon] => th
[status] => 1
[condition] =>
[sort] => 8
)
[27] => Array
(
[id] => 28
[pid] => 20
[name] => /Admin/Index/sitemap
[title] => sitemap生成
[type] => 1
[icon] => thumbs-up
[status] => 1
[condition] =>
[sort] => 8
)
[28] => Array
(
[id] => 11
[pid] => 2
[name] => /Admin/Set/path
[title] => 相关路径设置
[type] => 1
[icon] => check-square
[status] => 1
[condition] =>
[sort] => 9
)
[29] => Array
(
[id] => 12
[pid] => 2
[name] => /Admin/Amenu/index
[title] => 后台菜单管理
[type] => 1
[icon] => recycle
[status] => 1
[condition] =>
[sort] => 10
)
)
Array
(
[0] => Array
(
[id] => 1
[pid] => 0
[name] => /Admin/Index/home
[title] => 管理首页
[type] => 1
[icon] => clone
[status] => 1
[condition] =>
[sort] => 1
)
[1] => Array
(
[id] => 2
[pid] => 0
[name] =>
[title] => 网站设置
[type] => 1
[icon] => shopping-cart
[status] => 1
[condition] =>
[sort] => 2
[submenu] => Array
(
[0] => Array
(
[id] => 3
[pid] => 2
[name] => /Admin/Set/webset
[title] => 系统设置
[type] => 1
[icon] => mobile
[status] => 1
[condition] =>
[sort] => 1
)
[1] => Array
(
[id] => 4
[pid] => 2
[name] => /Admin/Set/user
[title] => 用户管理
[type] => 1
[icon] => users
[status] => 1
[condition] =>
[sort] => 2
)
[2] => Array
(
[id] => 5
[pid] => 2
[name] => /Admin/Set/email
[title] => 邮件设置
[type] => 1
[icon] => weixin
[status] => 1
[condition] =>
[sort] => 3
)
[3] => Array
(
[id] => 6
[pid] => 2
[name] => /Admin/Set/mysql
[title] => 数据库设置
[type] => 1
[icon] => thumbs-up
[status] => 1
[condition] =>
[sort] => 4
)
[4] => Array
(
[id] => 7
[pid] => 2
[name] => /Admin/Data/backupform
[title] => 数据库备份
[type] => 1
[icon] => cog
[status] => 1
[condition] =>
[sort] => 5
)
[5] => Array
(
[id] => 8
[pid] => 2
[name] => /Admin/Set/url
[title] => URL模式设置
[type] => 1
[icon] => refresh
[status] => 1
[condition] =>
[sort] => 6
)
[6] => Array
(
[id] => 9
[pid] => 2
[name] => /Admin/Set/theme
[title] => 主题设置
[type] => 1
[icon] => bars
[status] => 1
[condition] =>
[sort] => 7
)
[7] => Array
(
[id] => 10
[pid] => 2
[name] => /Admin/Set/image
[title] => 图片上传设置
[type] => 1
[icon] => th
[status] => 1
[condition] =>
[sort] => 8
)
[8] => Array
(
[id] => 11
[pid] => 2
[name] => /Admin/Set/path
[title] => 相关路径设置
[type] => 1
[icon] => check-square
[status] => 1
[condition] =>
[sort] => 9
)
[9] => Array
(
[id] => 12
[pid] => 2
[name] => /Admin/Amenu/index
[title] => 后台菜单管理
[type] => 1
[icon] => recycle
[status] => 1
[condition] =>
[sort] => 10
)
)
)
[2] => Array
(
[id] => 13
[pid] => 0
[name] =>
[title] => 内容管理
[type] => 1
[icon] => comments-o
[status] => 1
[condition] =>
[sort] => 3
[submenu] => Array
(
[0] => Array
(
[id] => 14
[pid] => 13
[name] => /Admin/Cate/index
[title] => 分类管理
[type] => 1
[icon] => clone
[status] => 1
[condition] =>
[sort] => 1
)
[1] => Array
(
[id] => 15
[pid] => 13
[name] => /Admin/Cate/add
[title] => 分类添加
[type] => 1
[icon] => plus
[status] => 1
[condition] =>
[sort] => 2
)
[2] => Array
(
[id] => 16
[pid] => 13
[name] => /Admin/Info/index
[title] => 信息管理
[type] => 1
[icon] => check-square
[status] => 1
[condition] =>
[sort] => 3
)
[3] => Array
(
[id] => 17
[pid] => 13
[name] => /Admin/Info/infoadd
[title] => 信息添加
[type] => 1
[icon] => users
[status] => 1
[condition] =>
[sort] => 4
)
[4] => Array
(
[id] => 18
[pid] => 13
[name] => /Admin/Info/page
[title] => 单页管理
[type] => 1
[icon] => cubes
[status] => 1
[condition] =>
[sort] => 5
)
[5] => Array
(
[id] => 19
[pid] => 13
[name] => /Admin/Info/pageadd
[title] => 单页添加
[type] => 1
[icon] => book
[status] => 1
[condition] =>
[sort] => 6
)
)
)
[3] => Array
(
[id] => 20
[pid] => 0
[name] =>
[title] => 扩展功能
[type] => 1
[icon] => cubes
[status] => 1
[condition] =>
[sort] => 4
[submenu] => Array
(
[0] => Array
(
[id] => 21
[pid] => 20
[name] => /Admin/Other/comment
[title] => 评论管理
[type] => 1
[icon] => user
[status] => 1
[condition] =>
[sort] => 1
)
[1] => Array
(
[id] => 22
[pid] => 20
[name] => /Admin/Other/number
[title] => 注册码管理
[type] => 1
[icon] => bars
[status] => 1
[condition] =>
[sort] => 2
)
[2] => Array
(
[id] => 23
[pid] => 20
[name] => /Admin/Other/gbook
[title] => 留言管理
[type] => 1
[icon] => send-o
[status] => 1
[condition] =>
[sort] => 3
)
[3] => Array
(
[id] => 24
[pid] => 20
[name] => /Admin/Tpl/index
[title] => 模板管理
[type] => 1
[icon] => users
[status] => 1
[condition] =>
[sort] => 4
)
[4] => Array
(
[id] => 25
[pid] => 20
[name] => /Admin/Other/linkindex
[title] => 链接管理
[type] => 1
[icon] => weixin
[status] => 1
[condition] =>
[sort] => 5
)
[5] => Array
(
[id] => 26
[pid] => 20
[name] => /Admin/Other/linkadd
[title] => 链接添加
[type] => 1
[icon] => users
[status] => 1
[condition] =>
[sort] => 6
)
[6] => Array
(
[id] => 27
[pid] => 20
[name] => /Admin/Notice/index
[title] => 广告管理
[type] => 1
[icon] => weixin
[status] => 1
[condition] =>
[sort] => 7
)
[7] => Array
(
[id] => 28
[pid] => 20
[name] => /Admin/Index/sitemap
[title] => sitemap生成
[type] => 1
[icon] => thumbs-up
[status] => 1
[condition] =>
[sort] => 8
)
)
)
[4] => Array
(
[id] => 29
[pid] => 0
[name] => /Admin/Index/delcache
[title] => 删除缓存
[type] => 1
[icon] => cog
[status] => 1
[condition] =>
[sort] => 5
)
[5] => Array
(
[id] => 30
[pid] => 0
[name] => /Admin/Lognn/logout
[title] => 退出登录
[type] => 1
[icon] => refresh
[status] => 1
[condition] =>
[sort] => 6
)
)
$data = array(
array('id' => 1, 'pid' => 0),
array('id' => 2, 'pid' => 0),
array('id' => 3, 'pid' => 1),
array('id' => 4, 'pid' => 1),
array('id' => 5, 'pid' => 3),
);
$tree = [];
foreach($data as $v){
$tree[$v['id']] = $v;
$tree[$v['id']]['submenu'] = array();
}
foreach ($tree as $k=>$item) {
if ($item['pid'] != 0) {
$tree[$item['pid']]['submenu'][] = &$tree[$k];
}
}
print_r($tree);
//输出
Array
(
[1] => Array
(
[id] => 1
[pid] => 0
[submenu] => Array
(
[0] => Array
(
[id] => 3
[pid] => 1
[submenu] => Array
(
[0] => Array
(
[id] => 5
[pid] => 3
[submenu] => Array
(
)
)
)
)
[1] => Array
(
[id] => 4
[pid] => 1
[submenu] => Array
(
)
)
)
)
[2] => Array
(
[id] => 2
[pid] => 0
[submenu] => Array
(
)
)
[3] => Array
(
[id] => 3
[pid] => 1
[submenu] => Array
(
[0] => Array
(
[id] => 5
[pid] => 3
[submenu] => Array
(
)
)
)
)
[4] => Array
(
[id] => 4
[pid] => 1
[submenu] => Array
(
)
)
[5] => Array
(
[id] => 5
[pid] => 3
[submenu] => Array
(
)
)
)
两个循环的事,何必来问
源数据不好,应该order by pid, id,这样会产生类似以下数据:
$data = array(
array('id' => 1, 'pid' => 0),
array('id' => 2, 'pid' => 0),
array('id' => 3, 'pid' => 1),
array('id' => 4, 'pid' => 1),
array('id' => 5, 'pid' => 3),
);
然后通过一次for循环将下标设为id值(有的框架搜索结果已经用了这种形式的可以省略这一步)
$tree = [];
foreach ($data as $row) {
$tree[$row['id']] = $row;
}
然后构造树形结构
foreach ($tree as $id => $row) {
if (! isset($row['_childs'])) $tree[$id]['_childs'] = [];
if (! empty($row['pid'])) {
$tree[$row['pid']]['_childs'][] = &$tree[$id];
}
}
//现在包含了冗余数据
print_r($tree);
可以去掉冗余部分,也可以留着
foreach ($tree as $id => $row) {
if (! empty($row['pid'])) unset($tree[$id]);
}
print_r($tree);