29

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

<?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>";
?>

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

4

3 回答 3

70

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

$value = "<span>".implode('</span>,<span>', $values)."</span>";
于 2012-03-26T13:07:25.770 回答
17

您可以array_map像这样使用函数:

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

结束然后只是内爆,

于 2012-03-26T13:09:40.877 回答
8

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

$value = "<span>" . implode("</span><span>", $values) . "</span>";
于 2012-03-26T13:12:42.273 回答