将html代码添加到php implode函数以返回数据

时间:2013-08-25 03:57:53

标签: php arrays wordpress function implode

我在wordpress网站上运行这个小功能。但我需要为它添加一些数据。希望我能得到帮助。

Function array_to_comma($data)
{

    if (is_array($data) and count($data) > 0) 
    {
        $data = implode(', ', $data);
        return $data;
    }
}

哪个输出:

Some Data, Some Data, Some Data

但我想添加一些HTML代码,一个跨度,但我不知道如何。所以它在渲染页面的源代码中看起来像这样。我看到它已经添加了一个逗号,但我无法想出添加更多数据,然后只是逗号出现在开头和结尾。像这样:

<span special="codes">Some Data</span>, <span special="codes">Some Data</span>, <span special="codes">Some Data</span>

感谢您的期待!我是一个PHP菜鸟:)

编辑:我已成功使用以下代码。来自elclanrs的答案。

function array_to_comma($data)
{
    if (is_array($data) and count($data) > 0) {
        $data = '<span special="code">'
            . implode('</span>,<span special="code">', $data)
            .'</span>';
        return $data;       
    }
}

3 个答案:

答案 0 :(得分:5)

这应该有效:

$result = '<span>'. implode('</span>,<span>', $data) .'</span>';

您可以这样做来添加属性:

$span = '<span special="codes">';
$result = $span . implode('</span>,'. $span, $data) .'</span>';

编辑:可以将其抽象出来以便重复使用:

function wrapInTag($arr, $tag='span', $atts='', $sep=',') {
  return "<$tag>". implode("</$tag>$sep<$tag $atts>", $arr) ."</$tag>";
}

// Printing a list
echo '<ul>'. wrapInTag(['one','two','three'], 'li', 'class="item"') .'</ul>';

答案 1 :(得分:1)

首先添加字符串:

foreach ($data as $key=>$val){
    $data[$key] = '<span special="codes">'.$val.'</span>';
}

然后执行你的内爆以获得逗号。

答案 2 :(得分:0)

或者你可以在内爆后修复它:

Function array_to_comma($data)
{    
    if (is_array($data) and count($data) > 0) 
    {            
        foreach($data as $elem)
        {
            $elem = "<span special=\"codes\">" . $elem . "</span>"
        }   
        $data = implode(', ', $data); 
        return $data;    
    }
}