2013-08-25 61 views
1

我有這個小函數運行在我的WordPress站點。但我需要向它添加一些數據。希望我能得到幫助。添加html代碼到php implode函數返回數據

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 noob :)

編輯:我已經成功地使用下面的代碼。從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;  
    } 
} 

回答

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>'; 
+0

Thanx!有效。我編輯我的帖子來反映。我不能upvote(對不起),因爲我是一個noob :(我沒有代表! – Anonymous992

1

首先添加字符串:

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

然後執行你的破滅讓逗號到位。

+0

+1您也可以使用雙引號以提高可讀性。 ('' $ val「') – Shomz

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;  
    } 
} 
+0

foreach將無法按照您期望的方式工作。 $ data = implode返回一個字符串 –

+0

Ahh ...對不起,我會修復它 –

+0

嗨,謝謝,這根本不起作用。致命錯誤。 – Anonymous992