【问题标题】:My foreach only finds the last element of the array我的 foreach 只找到数组的最后一个元素
【发布时间】:2012-11-26 10:50:34
【问题描述】:

这是我第一次来这里。 我的 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>';
?>

【问题讨论】:

    标签: php arrays foreach nav


    【解决方案1】:

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

    var_dump($links); 并查看您的数组由单个元素组成。

    http://ideone.com/epstaT

    【讨论】:

      【解决方案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>';
      

      ?>

      答案是<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>

      【讨论】:

      • 您可以通过完全省略数组定义中的键来使这更加简单
      【解决方案3】:

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

      print_r( $links );
      

      【讨论】:

        【解决方案4】:

        更改为echo '&lt;a href='#'&gt;'.$label.'&lt;/a&gt;'; 并更改键并手动添加#,对于字符串连接使用点

        【讨论】:

        • echo 带逗号是完全有效的。没有理由将所有部分连接成一个字符串。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-04-08
        • 2014-11-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多