首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用foreach循环和数组创建导航列表项

使用foreach循环和数组创建导航列表项
EN

Stack Overflow用户
提问于 2014-08-07 20:37:58
回答 3查看 2.5K关注 0票数 0

我试图使用php输出一个导航列表,使用foreach循环,我在字符串转换方面遇到了问题。

代码语言:javascript
复制
<ul>
            <?php 
            $taco = array("This", "That", "And", "Repeat");

            foreach($taco as $php) {
                print "<li class=\"nav\"><a href=\"# $taco\"> $taco</a><li>";
            }
            ?>
        </ul>

如何在不修改变量的情况下将#添加到href中?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-08-07 20:42:07

您的预见是没有意义的,您肯定应该阅读更多关于数组和循环的内容。

如果要在每一行上打印整个数组两次,则应该在循环当前状态下打印实际元素。

至于您打印的issue...stop打印then....do,如下所示:

代码语言:javascript
复制
<ul>
    <?php $tacos = array("This", "That", "And", "Repeat"); ?>

    <?php foreach ($tacos as $taco) : ?>

        <li class="nav">
            <a href="#<?php echo $taco; ?>"><?php echo $taco; ?></a>
        </li>

    <?php endforeach; ?>

</ul>

将整个HTML放入回显中是一种糟糕的做法。

你应该把所有这些都读一遍:

http://php.net/manual/en/control-structures.alternative-syntax.php

http://php.net/manual/en/control-structures.foreach.php

http://php.net/manual/en/language.types.array.php

票数 -1
EN

Stack Overflow用户

发布于 2014-08-07 20:42:07

您正在尝试使用数组输出值。$php包含

代码语言:javascript
复制
foreach($taco as $php) {
    print "<li class=\"nav\"><a href=\"#{$php}\"> {$php}</a></li>";
}

编辑:我通常更喜欢使用sprintf()输出这类语句。每个人都有自己的,但这里有一个很好的方法:

代码语言:javascript
复制
$tag = '<li class="nav"><a href="#%s">%s</a></li>';
foreach($taco as $php) {
    print sprintf($tag, $php, $php);
}
票数 0
EN

Stack Overflow用户

发布于 2014-08-07 20:43:33

foreach的语法是:

代码语言:javascript
复制
foreach($array as $element) 

所以这是可行的:

代码语言:javascript
复制
$taco = array("This", "That", "And", "Repeat");

foreach($taco as $taco_elem) {
     print "<li class=\"nav\"><a href=\"#$taco_elem\">$taco_elem</a></li>";
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25191746

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档