使用foreach循环和数组php

时间:2016-05-19 10:45:14

标签: php

对于我的网站,我需要创建一个带有数组的菜单,并使用foreach循环将其打印出来。

这是我已经拥有的数组:

$aMenu = array(
 'Home' => 'index.php',
 'Over mij' => 'overmij.php',
 'Contact' => 'contact.php'
 ');

所以我需要在foreach循环中打印这个数组,这是我需要打印的内容:

<li><a href="index.php" title="menuitems" class="current">Home</a></li>
 <li><a href="overmij.php" title="menuitems" >Over mij</a></li
 <li><a href="contact.php" title="menuitems" >Contact</a></li>

我还得上课#&#39;当前&#39;在我目前所在的页面上。

我还没有使用foreach循环,我无法在互联网上找到它。谢谢你的时间。

5 个答案:

答案 0 :(得分:0)

您可以打印这样的菜单:

    <?php

    $aMenu = array(
     'Home' => 'index.php',
     'Over mij' => 'overmij.php',
     'Contact' => 'contact.php'
    );

    $list = "<ul>";
    foreach($aMenu as $key=>$menu) {
       $class = '';
       if($current_page == $key) { $class = 'active'; }
       $list = $list.'<li><a href="'.$menu.'" class="'.$class.'" title="menuitems" >'.$key.'</a></li>';
    }
    $list .= "</ul>";
    echo $list;

?>

答案 1 :(得分:0)

$aMenu = array(
 'Home' => 'index.php',
 'Over mij' => 'overmij.php',
 'Contact' => 'contact.php'
 );

<?php if(isset($aMenu)):?>
<ul class="menu">
  <?php foreach($aMenu as $name => $page):?>
  <li><a href="<?php echo $page;?>" title="<?php echo $name;?>"><?php echo $name;?></a></li>
<?php endforeach;?>
</ul>
<?php endif; ?>

'当前选择'功能是通过Javascript实现的。

答案 2 :(得分:0)

您可以查找当前请求的脚本文件 basename($_SERVER['SCRIPT_FILENAME'])

此代码段正在查找服务器请求的脚本名称,例如(粗体)

  

http://example.com/的index.php

并使用您定义的数组值

进行验证
if (basename($_SERVER['SCRIPT_FILENAME') == $filename) {
   //add class
   $current = 'current';
}

最后使用三元运算符缩短

foreach ( $aMenu as $menu => $filename ) {
   $current = (basename($_SERVER['SCRIPT_FILENAME']) == $filename) ? 'current' : '';
   echo '<li><a href="'.$filename.'" title="menuitems" class="'.$current.'">'.$menu.'</a></li>';
}

答案 3 :(得分:0)

您可以使用foreachif来获得所需的输出。

<?php 
$aMenu = array(
    'Home' => 'index.php',
    'Over mij' => 'overmij.php',
    'Contact' => 'contact.php'
);?>
<ul>
<?php
foreach($aMenu as $key => $val){ 
$active = ($page == $key) ? 'current' : '';
?>
    <li><a href="<?php echo $key?>" title="menuitems" class="<?php echo $active;?>"><?php echo $val;?></a></li>
}
?>
</ul>

index.php页面中,您需要使用$page = 'index.php',依此类推......

  

注意:您需要在每个页面中设置$page,例如页面名称。有很多方法可以做到这一点。这只是一个。

答案 4 :(得分:0)

我可能会迟到,但请尝试以下代码 您可以将$current_page更改为该值,它将设置为当前值:

<?php    
     $aMenu = array(
          'Home' => 'index.php',
          'Over mij' => 'overmij.php',
          'Contact' => 'contact.php'
     );

     $current_page = 'overmij.php';
?>

<li>
    <?php foreach ($aMenu as $key => $value) : ?>
    <a href="<?php echo $value; ?>" title="menuitems" <?php if($current_page == $value){echo "class='current'";}?>><?php echo $key;?></a>
    <?php endforeach;?>
</li>