只想问一下这里有人可以解决这个问题吗?
我想通过使用多级数组生成来创建多级菜单。 我只是无法得到完美的解决方案,它总是得到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()[function.array-push]:第一个参数应该是一个数组
我已经讨论了很多这个问题,但在我做了一些研究之后,大多数案例都在做多级菜单但是在一个级别的数组中。我想实现多级数组。有人可以帮忙吗?
我正在使用静态类型的临时数组。
答案 0 :(得分:2)
我建议你看看
http://www.ideashower.com/our_solutions/create-a-parent-child-array-structure-in-one-pass/ &安培; http://www.phpriot.com/articles/nested-trees-1
在这两个想法之间,您可以获得一个非常可行的数组树来构建您需要的任何内容。
答案 1 :(得分: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;