2011-08-05 117 views
1

由於我是一位php noob,我不確定是否要使用preg_replace()explode(),然後implode()。無論哪種方式,我不知道如何去做。從運行中刪除第一個逗號字符串

我在WordPress的,和我運行這段代碼:

<?php $terms = wp_get_post_terms($post->ID,'jobtype'); 
foreach($terms as $term){echo ', ' . $term->name;} ?> 

我需要捕獲到一個字符串echo ', ' . $term->name;並刪除第一', '

即使有一種不同的方式,我可以echo術語名稱,你們(和加爾)可以幫我嗎?

謝謝!

+0

你想用什麼來代替第一個','? – yokoloko

+0

@yokoloko如果你看看這個話題,我只想刪除它。 –

回答

3

老同學:

$terms = wp_get_post_terms($post->ID,'jobtype'); 
$names = array(); 
foreach($terms as $term){ 
    $names[] = $term->name; 
} 
echo implode(',', $names); 

由於PHP 5.3推出anonymous functions [docs]array_map[docs]成爲這些 「一次性」 的工作更有趣:

echo implode(',', array_map(function($term) { return $term->name; }, 
          wp_get_post_terms($post->ID,'jobtype'))); 

或者更多的描述了可重複使用的功能:

function getProperty($prop) { 
    return function($object) use ($prop) { 
     return $object->{$prop}; 
    } 
} 

echo implode(',', array_map(getProperty('name'), 
          wp_get_post_terms($post->ID,'jobtype'))); 

但正如所說,這隻適用於如果您使用PHP 5.3。

+0

這完美的作品!我沒有心情看看我的主機是否支持PHP 5.3,所以我只會使用一些有用的東西。非常感謝! –

+0

@JoshAllen:不客氣:) –

相關問題