【发布时间】:2015-07-05 00:26:54
【问题描述】:
我有这个多维数组来显示我的网站在某些 PHP 代码中使用的菜单。我一直在做一些实验和阅读,我想让它与多维数组一起工作,以便我可以动态显示相应的菜单。
我有 3 个不同的菜单可以显示,“一”、“二”和“三”。
$pages = array(
'one' => array(
'about 1' => array('services 1', 'partners 1'),
'events 1',
'contact 1'
),
'two' => array(
'about 2' => array('services 2', 'partners 2'),
'events 2',
'contact 2'
),
'three' => array(
'about 3' => array('services 3', 'partners 3'),
'events 3',
'contact 3'
)
);
到目前为止,我已经尝试了一些东西,但我无法弄清楚 - 我认为我的多维数组需要更改?
基本上如果$current_page == 'one' 那么我想为'one' 回显相应的数组。
应该是这样的:
<?php
echo '<ul class="menu">';
if ($current_page == 'one'){
foreach($pages['one'] as $page => $dropdown){
if (array has third dimension){ // pseudo code if pages have third dimension
echo '<li class="has-dropdown">' $page '</li>\n';
echo '<ul class="dropdown">';
foreach($pages['one'] as $page => $dropdown){
echo '<li>' . $dropdown . '</li>\n';
}
echo '</ul>';
} else { // no third dimension
foreach($pages['one'] as $page){
echo '<li>' $page '</li>\n';
}
}
}
}
elseif ($current_page == 'two'){
foreach($pages['two'] as $page){
if (array has third dimension){ // pseudo code if pages have third dimension
echo '<li class="has-dropdown">' $page '</li>\n';
echo '<ul class="dropdown">';
foreach($pages['one'] as $page => $dropdown){
echo '<li>' . $dropdown . '</li>\n';
}
echo '</ul>';
} else { // no third dimension
foreach($pages['one'] as $page){
echo '<li>' $page '</li>\n';
}
}
}
}
elseif ($current_page == 'three'){
foreach($pages['three'] as $page){
if (array has third dimension){ // pseudo code if pages have third dimension
echo '<li class="has-dropdown">' $page '</li>\n';
echo '<ul class="dropdown">';
foreach($pages['one'] as $page => $dropdown){
echo '<li>' . $dropdown . '</li>\n';
}
echo '</ul>';
} else { // no third dimension
foreach($pages['one'] as $page){
echo '<li>' $page '</li>\n';
}
}
}
}
echo '</ul>';
?>
以上方法不起作用,这只是我一直在尝试的粗略描述。问题是:如何使用 foreach 循环来显示我的菜单?任何帮助表示赞赏!
【问题讨论】:
标签: php arrays multidimensional-array foreach