只是想问问在座的任何人都能解决这个问题吗?
我想通过使用多级数组生成来创建一个多级菜单。我只是不能得到完美的解决方案,它总是得到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]
); 我只能执行直到推送,但它有警告: array_push()函数。push_array -push_array:第一个参数应该是一个数组
这个问题我已经讨论了很多,但在我做了一些研究之后,大多数情况下都是在做多级菜单,而是在一级数组中。我想实现一些多层数组。有人能帮上忙吗?
我使用静态类型的临时数组。
发布于 2010-01-25 12:46:53
已解决
我必须先声明数组,然后再推送它,否则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;
发布于 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
在这两个想法之间,你可以得到一个非常可行的数组树,用来构建你需要的任何东西。
https://stackoverflow.com/questions/2129913
复制相似问题