1

由于我有点 php 菜鸟,我不确定是去preg_replace()还是去explode()then implode()。无论哪种方式,我都不知道该怎么做。

我在 wordpress 中,我正在运行以下代码:

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

我需要捕获到一个字符串中echo ', ' . $term->name;并首先删除它', '

即使我可以用不同的方式来echo命名术语,你们(和女孩)能帮我吗?

谢谢!

4

1 回答 1

3

老套:

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

随着 PHP 5.3 引入匿名函数[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 时才有效。

于 2011-08-05T21:28:54.370 回答