从即时字符串中删除第一个逗号

Posted

技术标签:

【中文标题】从即时字符串中删除第一个逗号【英文标题】: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 如果你看这个话题,我只想删除它。 【参考方案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,所以我只使用可行的。非常感谢!

以上是关于从即时字符串中删除第一个逗号的主要内容,如果未能解决你的问题,请参考以下文章

读取字符串直到第一个逗号,然后计算字符串的值?

在 JavaScript 中删除最后一个逗号之前的文本

从第一个或最后一个删除字符

拆分字符串中的第一个逗号

请问如何在Oracle中截取第一个逗号和第二个逗号之间的字符串

SQL 查询指定字符串的位置