Удалить первую запятую из строки на лету - PullRequest
1 голос
/ 06 августа 2011

Поскольку я немного 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 назвать термины, вы, ребята (и девочки), можете мне помочь?

Спасибо!

1 Ответ

3 голосов
/ 06 августа 2011

Старая школа:

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

Как PHP 5.3 представил анонимные функции [документы] , array_map [документы] становится более интересным для этих «одноразовых» заданий:

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.

...