我的foreach只找到数组的最后一个元素

时间:2012-11-26 10:50:34

标签: php arrays foreach nav

这是我第一次来这里。 我的foreach循环有问题,它只输出“联系我们”链接,而不是其他链接。

我看不出语法问题:

<?php
echo '<nav id="main_nav">';
    $links = array(
        '#' => 'Home',
        '#' => 'About Us',
        '#' => 'Our Services',
        '#' => 'Portfolio',
        '#' => 'Testimonials',
        '#' => 'Gallery',
        '#' => 'Contact Us'
    );
    foreach($links as $href => $label){
        echo '<a href="',$href,'">',$label,'</a>';
    }
    echo '</nav>';
?>

4 个答案:

答案 0 :(得分:3)

那是因为你应该为数组中的元素指定不同的键。

var_dump($links);并看到你的数组由一个元素组成。

http://ideone.com/epstaT

答案 1 :(得分:2)

这是因为数组中的索引元素相同........

<?php
echo '<nav id="main_nav">';
$links = array(
    '0' => 'Home',
    '1' => 'About Us',
    '2' => 'Our Services',
    '3' => 'Portfolio',
    '4' => 'Testimonials',
    '5' => 'Gallery',
    '6' => 'Contact Us'
);
foreach($links as $href => $label){
    echo '<a href="',$href,'">',$label,'</a>';
}
echo '</nav>';

&GT;

,答案是<nav id="main_nav"><a href="0">Home</a><a href="1">About Us</a><a href="2">Our Services</a><a href="3">Portfolio</a><a href="4">Testimonials</a><a href="5">Gallery</a><a href="6">Contact Us</a></nav>

答案 2 :(得分:1)

因为您的数组键索引是相同的。这就是为什么它只打印联系我们

print_r( $links );

答案 3 :(得分:0)

更改为echo '<a href='#'>'.$label.'</a>';并更改密钥并手动添加#,以便字符串连接使用点