2010-01-25 84 views
1

只想问这里的任何人可以解决这个问题吗?带多级阵列的多级菜单

我想用多级数组生成多级菜单。 我只是不能得到完美的解决方案,它总是得到array_push错误。 我的学习最初的想法来自于http://www.weberdev.com/get_example-4830.html

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

这是我的MySQL

[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] 

我想我的数组一些这样的事

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] 
             );  

我唯一能够做,直到push_array,但它警告 警告:array_push()函数.array-push]:第一个参数应该是一个数组

我有这个问题已经讨论了很多,但是在我做了一些研究之后,大部分情况都在做m ultilevel菜单,但在一个级别的数组。我想实现一些多层次的数组。任何人都可以帮忙

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

+0

除了编辑问题以表明问题已解决之外,请将答案作为回答并标记为答案。你知道,为了后代。 – Jay 2010-01-25 04:46:57

+0

雅,但我不能点击解决我自己的答案,它需要2天。我会评价另一个答案,thx提醒。 – Shiro 2010-01-26 09:26:26

回答

0

[解决]

我声明数组第一之前我推它,否则PHP不能推里面的数据,这将是空的。赞美主!

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;