我的数据包含导航栏的链接。它的结构应该与无序列表完全相同,带有标题,然后是该标题下面的所有相应链接。我似乎无法正确构建这个。这将是来自数据库的一些样本数据。
HEADING LIST LINK
Favs google http://...
Favs yahoo http://...
Favs stackoverflow http://...
Site first link http://...
Site second link http://...
然后,此数据应将所有标题分组为一个,然后显示与其关联的链接。这甚至是可能的,还是有更好的方法?
我计划使用“HEADING”和“LIST”来动态构建<UL>
类型的菜单。
嗯,这不像我希望的那样有效。这是从数据库构建的数组。注意侧边栏[0]和侧边栏[1]如何重置“Favs”值。这将在我不希望的表单上重复相同的值。所有重复的名称应该组合在一起。这可能吗?
Array
(
[date] => Sun, 25 Oct 2009
[sidebar] => Array
(
[0] => Array
(
[Favs] => Array
(
[author_sidebar_link] => google.com
)
)
[1] => Array
(
[Favs] => Array
(
[author_sidebar_link] => yahoo.com
)
)
[2] => Array
(
[Offsite] => Array
(
[author_sidebar_link_title] => something
)
)
[3] => Array
(
[Something] => Array
(
[author_sidebar_link] => something else
)
)
)
)
答案 0 :(得分:3)
您可以使用这样的多维数组:
<?php
$menu = array(
'Favs' => array(
array('LIST' => 'google', 'LINK' => 'http://...'),
array('LIST' => 'yahoo', 'LINK' => 'http://...'),
array('LIST' => 'stackoverflow', 'LINK' => 'http://...')
),
'Site' => array(
array('LIST' => 'first link', 'LINK' => 'http://...'),
array('LIST' => 'second link', 'LINK' => 'http://...')
)
);
?>
答案 1 :(得分:1)
$menu = array('Favs' => array(
'Google' => 'http://',
'Yahoo' => 'http://'
),
'Site' => array(
'First' => 'http://',
'Second' => 'http://'
)
);
foreach($menu as $category => $items){
echo '<h3>' . $category . '</h3>';
echo '<ul>';
foreach($items as $name => $url){
echo '<li><a href="' . $url . '">' . $name . '</a></li>';
}
echo '</ul>';
}
答案 2 :(得分:0)
您可以使用此代码
<?php
$_list = array();
foreach($_data as $k => $v){
$_list[$v['HEADING']][$v['LIST']] = $v['LINK'];
}
foreach($_list as $k => $v){
echo "<ul>".$k;
foreach($v as $kk => $vv){
echo "<li><a href='".$vv."'>".$kk."</a></li>";
}
echo "</ul>";
}
?>