【问题标题】:Remove first comma from on-the-fly string从即时字符串中删除第一个逗号
【发布时间】:2011-08-05 21:25:21
【问题描述】:

由于我是一个 php 菜鸟,我不确定是选择 preg_replace() 还是 explode() 然后 implode()。不管怎样,我不知道该怎么做。

我在 wordpress 中,我正在运行这段代码:

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

我需要将echo ', ' . $term-&gt;name; 捕获到一个字符串中并删除第一个', '

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

谢谢!

【问题讨论】:

  • 你想用什么替换第一个','?
  • @yokoloko 如果你看这个话题,我只想删除它。

标签: php string preg-replace explode comma


【解决方案1】:

老派:

$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 时才有效。

【讨论】:

  • 这完美!我没心情看看我的主机是否支持 PHP 5.3,所以我只使用可行的。非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-11
  • 1970-01-01
  • 2019-09-23
  • 2011-04-24
相关资源
最近更新 更多