为了将图标集成到导航栏中,我使用key => value数组来存储带有icon标记的文件名。在导航栏中,我使用一个foreach循环来构建下拉菜单或为单个导航链接建立数组索引。这样还可以非常轻松地动态构建和更改下拉菜单。
$homepage = array(
'index.php'=>'<i class="fa fa-home"></i>'
);
$guestpages = array(
'createaccount.php'=>'<i class="fa fa-university"></i>',
'login.php'=>'<i class="fa fa-sign-in"></i>'
);
$logout = array(
'logout.php'=>'<i class="fa fa-sign-out"></i>'
);
$pages = array($homepage,$guestpages,$logout);
我还解析URL,以确定客户端正在查看哪个页面。
$pagename = basename($_SERVER['PHP_SELF']);
并且为了将解析的URL与$ pages数组中的相应图标标签相关联,我目前使用嵌套的foreach循环:
foreach ($pages as $pagearray) {
foreach ($pagearray as $page => $icon) {
if($pagename == $page) {
$pageicon = $icon;
}
}
}
我想做的是这样的:
$pageicon = $pages[?][$pagename];
是否存在类似的替代解决方案?
答案 0 :(得分:3)
由于页面名必须唯一,因此可以在一个维度上构建数组,如下所示:
$pages = [
'index.php'=>'<i class="fa fa-home"></i>',
'createaccount.php'=>'<i class="fa fa-university"></i>',
'login.php'=>'<i class="fa fa-sign-in"></i>',
'logout.php'=>'<i class="fa fa-sign-out"></i>',
];
然后只使用:
$icon = $pages[basename($_SERVER['PHP_SELF'])] ?? '<some default>';
[编辑]或者,您可以使用array_merge()
合并数组:
$pages = array_merge($homepage, $guestpages, $logout);