2011-07-19 67 views
1

你好,我有以下代码来生成我的导航/页面菜单,并将样式元素应用到活动页面。我想知道如何才能凝聚代码而不是拥有两个合并数组?凝聚PHP数组?

这是我目前的代码,两者之间的区别是html链接输出。 “首页”链接必须是<a href="./'. $k .'">'. $v .'</a>

而其它页面需要有<a href="./?p='. $k .'">'. $v .'</a>

<?php 

    $current = array(
    "" => "Home" 
    ); 
    foreach($current as $k => $v) { 
     $active = $_GET['p'] == $k 
     ? ' class="current_page_item"' 
     : ''; 
    echo '<li'. $active .'><a href="./'. $k .'">'. $v .'</a></li>'; 
    } 

    $current = array(
     "contact" => "Contact Us", 
     "about" => "About Us", 
     "privacy" => "Privacy Policy" 
    ); 
    foreach($current as $k => $v) { 
     $active = $_GET['p'] == $k 
      ? ' class="current_page_item"' 
      : ''; 
     echo '<li'. $active .'><a href="./?p='. $k .'">'. $v .'</a></li>'; 
    } 

?> 

任何帮助将不胜感激,谢谢:)

+0

'if($ v!=“Home”)$ k ='?p ='。 $ k'是你需要有一个循环的唯一改变... –

回答

1
<?php 

$current = array(
    "" => "Home" 
    "contact" => "Contact Us", 
    "about" => "About Us", 
    "privacy" => "Privacy Policy" 
); 
foreach($current as $k => $v) { 
    $active = $_GET['p'] == $k 
     ? ' class="current_page_item"' 
     : ''; 
    echo '<li'. $active .'><a href="./'.(empty($k)?"":"?p=") . $k .'">'. $v .'</a></li>'; 
} 

?> 
1

几乎相同

$ href = empty($ k)? “./”:“./?p={$k}”;