2010-01-25 83 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;