我试图创建一个“插件”之类的脚本添加到“菜单阵” ......我会去直接在导航/ subnav结构..PHP - 从阵列
可以说我发起导航项目如下:
$sections->add_section('dashboard');
$DashBoardSection = $sections->load_section('dashboard');
$DashBoardSection->set_role(NULL);
$DashBoardSection->set_nav_item(array(
'identifier' => 'dashboard',
'text' => 'Dashboard',
'url' => NULL,
'position' => NULL
));
首先创建一个新的部分并获取实例。
然后,我们设置一个“角色”,我们将在其中测试以查看用户是否已通过身份验证以查看。
设置导航项只存储数组。标识符是对项目的引用(当我们想要添加子项目时),除了“位置”之外的所有标准,它说明它位于nav中的位置,即NULL是顶层,数组('topnav','subnav ')将是topnav-> subnav->仪表板。
的测试,这可以存储如下:
Array
(
[0] => Array
(
[identifier] => dashboard
[text] => Dashboard
[url] =>
[position] =>
)
[1] => Array
(
[identifier] => dashboard2
[text] => Dashboard2
[url] =>
[position] => Array
(
[0] => dashboard
)
)
)
我的问题是我怎么把它转换成以下结构:
Array
(
[0] => Array
(
[identifier] => dashboard
[text] => Dashboard
[url] =>
[position] =>
[children] => Array
(
[0] => Array
(
[identifier] => dashboard2
[text] => Dashboard2
[url] =>
)
)
)
)
拉我的头发在这一项,任帮助将非常感激。
问候
我现在有
public function build_navigation($role){
$role = (int)$role;
$nav = array();
foreach($this->sections as $section) {
if($section->get_role() === NULL || $section->get_role() === $role) {
$nav_array = $section->get_nav();
foreach($nav_array as $key => $nav_item) {
if($nav_item['position'] === NULL) {
$nav[$nav_item['identifier']] = $nav_item;
}elseif(is_array($nav_item['position'])){
#...#
}
}
}
}
return $nav;
}
编辑
想象这是给定的数组(它可以在任何顺序)
Array
(
[0] => Array
(
[identifier] => dashboard_child2
[text] => Dashboard Child 2
[url] =>
[position] => Array
(
[0] => dashboard
)
)
[1] => Array
(
[identifier] => dashboard_child_child_1
[text] => Dashboard Child Child 1
[url] =>
[position] => Array
(
[0] => dashboard
[1] => dashboard_child1
)
)
[2] => Array
(
[identifier] => dashboard_child1
[text] => Dashboard Child 1
[url] =>
[position] => Array
(
[0] => dashboard
)
)
[3] => Array
(
[identifier] => dashboard
[text] => Dashboard
[url] =>
[position] =>
)
[4] => Array
(
[identifier] => dashboard2
[text] => Dashboard2
[url] =>
[position] => Array
(
[0] => dashboard
)
)
)
一个需要格式为:
Array
(
[dashboard] => Array
(
[text] => Dashboard
[url] =>
[children] => Array
(
[dashboard_child2] => Array
(
[text] => Dashboard Child 2
[url] =>
)
[dashboard_child1] => Array
(
[text] => Dashboard Child 1
[url] =>
[children] => Array
(
[dashboard_child_child_1] => Array
(
[text] => Dashboard Child Child 1
[url] =>
)
)
)
[dashboard2] => Array
(
[text] => Dashboard2
[url] =>
)
)
)
)
[嵌套数组可能重复。第三级消失](http://stackoverflow.com/questions/7673044/nested-array-third-level-is-disappearing) – hakre 2012-08-16 20:55:03