【问题标题】:Why is foreach loop outputting double sets of li tags?为什么 foreach 循环输出双组 li 标签?
【发布时间】:2011-10-22 07:11:07
【问题描述】:

为这个菜鸟问题道歉,但是......

在 wordpress 3.2.1 中,使用 wp-e-commerce:

我正在使用以下代码将索引数组中的字段输出为无序列表。

function tag_badges() {
  global $wpdb, $post;
  $tags = wp_get_product_tags($post->ID);
  foreach($tags as $key)
    // print_r ($key->name);
  echo "<li>$key->name<li/>";
}

这类作品。但是对于每个有集合的标签,我都会得到一组空的 li 标签。

例如

  • 值1
  • 值2
  • 值3
  • 当我只输出没有标记的键时,它只返回数组中的三个值,例如

    键:值1 键:值2 关键:价值3

    所以我很确定这不是因为正在输出空字段。

  • 【问题讨论】:

    • 你的 html 是什么样的?
    • var_dump($tags) 输出什么?有空条目吗?
    • print_r() 不为 null 打印任何内容,所以不要假设只看到打印的三个值意味着只对三个东西进行操作。

    标签: php html arrays wordpress foreach


    【解决方案1】:

    您只是在输出中犯了一个小错误,您没有关闭li 标签而是添加了一个新标签:

    echo "<li>$key->name<li/>";
    #                      ^
    

    要解决此问题,请将/ 移动到第二个li 标记的开头,使其实际上成为结束标记:

    echo "<li>$key->name</li>";
    #                    ^
    

    【讨论】:

    • 看在上帝的份上。谢谢你。出于兴趣,你认为我应该留下这个问题还是留下来太愚蠢了?
    • 别管它,这是一个很好的例子,可能会出错。我们并不总是总是犯高级错误;)
    • 哈哈,我还以为 HTML 中有第二个 &lt;li&gt;,很好发现
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-06
    • 1970-01-01
    • 1970-01-01
    • 2013-05-19
    • 1970-01-01
    相关资源
    最近更新 更多