2011-07-19 8 views
1

こんにちは私はナビゲーション/ページメニューを生成するために、アクティブなページにスタイルエレメントを適用する次のコードを持っています。 2つのマージ配列を持つのではなく、コードを凝縮する方法を知りたいのですが?PHPアレイを凝縮するには?

ここに私の現在のコードは、2つの違いは、HTMLのリンク出力です。他のページは、すべてのヘルプははるかに高く評価されるだろう<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>'; 
    } 

?> 

を持っている必要がありますに対し「ホーム」のリンクは、<a href="./'. $k .'">'. $v .'</a>

にする必要があるあなたに感謝:)

+0

'if($ v!=" Home ")$ k = '?p ='。 $ k'はあなたが1つのループを持つ必要がある唯一の変更です... –

答えて

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}";

関連する問題