由于我是一个PHP菜鸟,我不确定是与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 :(得分: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。