首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有多级数组的多级菜单

具有多级数组的多级菜单
EN

Stack Overflow用户
提问于 2010-01-25 10:39:11
回答 2查看 3.6K关注 0票数 1

只是想问问在座的任何人都能解决这个问题吗?

我想通过使用多级数组生成来创建一个多级菜单。我只是不能得到完美的解决方案,它总是得到array_push错误。我的研究最初的想法来自http://www.weberdev.com/get_example-4830.html

但仍然不能满足我的需求。

这是我的MySQL

代码语言:javascript
复制
[code]
-----------------------------------------
|id | parent_id| name    | link     |seq
|1  |  0       |dashboad |dashboard/|1
|2  |  0       |menu1    |menu1/    |2
|3  |  0       |menu2    |menu2/    |3
|4  |  0       |menu3    |menu3/    |4
|5  |  2       |add      |add/      |1
|6  |  3       |add      |add/      |1
|7  |  2       |edit     |edit/     |2
|8  |  4       |add      |add/      |1
------------------------------------------
[/code]

我想让我的数组像这样

代码语言:javascript
复制
array('dashboard'=>array(
                         'id'=>'',
                         'name'=>'dashboard',
                         'title'=>'dashboard',
                         'permalink'=>base_url().'dashboard/',
                         'active'=>FALSE,
                         'child'=>NULL
                         ),
     'menu1'=>array(
                         'id'=>'',
                         'name'=>'menu1',
                         'title'=>'menu1',
                         'permalink'=>base_url().'menu1/',
                         'active'=>FALSE,
                         'child'=>array(
                                       'add'=>array(
                                                     'id'=>'',
                                                     'name'=>'add',
                                                     'title'=>'add',
                                                     'permalink'=>base_url().'menu1/add',
                                                     'active'=>FALSE,
                                                     'child'=>NULL
                                                     ),
                                       'edit'=>array(
                                                     'id'=>'',
                                                     'name'=>'edit',
                                                     'title'=>'edit',
                                                     'permalink'=>base_url().'menu1/edit/',
                                                     'active'=>FALSE,
                                                     'child'=>NULL
                                                     )
                                                   ),
                                 ),
      ...................[similar like above]
                                       );       

我只能执行直到推送,但它有警告: array_push()函数。push_array -push_array:第一个参数应该是一个数组

这个问题我已经讨论了很多,但在我做了一些研究之后,大多数情况下都是在做多级菜单,而是在一级数组中。我想实现一些多层数组。有人能帮上忙吗?

我使用静态类型的临时数组。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-01-25 12:46:53

已解决

我必须先声明数组,然后再推送它,否则PHP不能推送数据,它将是空的。赞美主!

代码语言:javascript
复制
if(!isset($option_results[$nav_ParentName]['child']))
                    {
                        $option_results[$nav_ParentName]['child'] = array();  
                    }
                    $option_results[$nav_ParentName]['child'] = $option_results[$nav_ParentName]['child'] + $temp;

但是这个解决方案的问题是不能声明$array‘’child‘= null;

票数 0
EN

Stack Overflow用户

发布于 2010-01-25 13:12:52

我建议你去看看

http://www.ideashower.com/our_solutions/create-a-parent-child-array-structure-in-one-pass/http://www.phpriot.com/articles/nested-trees-1

在这两个想法之间,你可以得到一个非常可行的数组树,用来构建你需要的任何东西。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2129913

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档