【问题标题】:PHP Implode wrap in tagsPHP Implode 包装在标签中
【发布时间】:2012-04-09 23:43:45
【问题描述】:

一直在尝试用谷歌搜索答案,但似乎找不到任何东西,我有以下...

<?php
    $values =   array_map('trim', get_post_custom_values($key));
    $value  =   implode($values,', ');
    echo "<div class='top-meta-vals'>".apply_filters(" $value\n", $value)."</div>";
?>

我想将每个$value 包装在一个跨度标签中,但我不确定如何...

我试过了,

<?php
$value = "<span>".implode($values,', ')."</span>";
?>

没有运气,谁能告诉我我哪里出错了?

【问题讨论】:

  • $value = '&lt;span&gt;'.implode('&lt;span&gt;, &lt;/span&gt;', $values).'&lt;/span&gt;';
  • 以上评论有误。应该是 ', ' in implode

标签: php html implode


【解决方案1】:

通过这种方式,您将整个集合包装在一个跨度中,您必须将关闭/打开标签添加到 implode:

$value = "<span>".implode('</span>,<span>', $values)."</span>";

【讨论】:

  • 顺便提一下:空的$tags数组会变成&lt;span&gt;&lt;/span&gt;字符串。
  • 翻转参数为implode,然后正确,应该是:implode(',', $values)
  • 要解决导致 $value 为空 span 元素的空 $values 问题,您可以echo trim( $value, '&lt;span&gt;&lt;/span&gt;');
  • 今天遇到了同样的问题。添加了额外的empty() 子句:empty($values) ? "" : "&lt;span&gt;".implode('&lt;/span&gt;,&lt;span&gt;', $values)."&lt;/span&gt;";
【解决方案2】:

你可以使用array_map函数,像这样:

$filter = function($tag){ return '<span>' . $tag . '</span>'; };
$spannedTags = array_map($filter, $tags);

结束,然后用, 内爆。

【讨论】:

    【解决方案3】:

    基本上,这只是使用 span 关闭/打开的“胶水”来破坏您的值,并将其包装,以便第一个和最后一个项目具有它们的开始/结束 spans 标签:

    $value = "<span>" . implode("</span><span>", $values) . "</span>";
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-17
      • 1970-01-01
      • 1970-01-01
      • 2015-07-22
      • 2015-02-16
      • 1970-01-01
      相关资源
      最近更新 更多