для конкатенации добавление дополнительных запятых

Я пытаюсь объединить имена авторов, когда в статье более одного автора, но по какой-то причине добавляются дополнительные запятые. Это код, который я использую:

        $get_coauthors = get_coauthors();
$count = count( $get_coauthors );
if ( $count > 1 ) {
for ( $i = 0; $i <= $count; $i++ ) {
$name .= $get_coauthors[ $i ]->data->display_name . ' ,';
}
} else {
$name = $get_coauthors[0]->data->display_name;
}
error_log(print_r($name,true));

И мой print_r возвращается user1 ,user2 , ,

Любая идея почему?

0

Решение

Нет необходимости в count() или if заявление. Это может быть проще:

//If you already have a $name
$names[] = $name;

foreach(get_coauthors() as $author) {
$names[] = $author->data->display_name;
}
$names = implode(', ', $names);

Чтобы удалить пустую тару:

$names = implode(', ', array_filter($names));
2

Другие решения

ты можешь использовать rtrim() удалить последний, из вашего списка имен.

что-то вроде

$srting = 'a,b,c,d,e,';
$result_output = rtrim($srting);
echo $result_output;

затем выведите: a,b,c,d,e

так твой код будет

$names = '';
foreach(get_coauthors() as $author) {
$names .= $author->data->display_name. ' ,';
}
$result = rtrim($names,",");

или получить все имя в массиве, затем просто взорвать его, тогда вы получите результат, как user1, users2 и т. д.

$names = array();
foreach(get_coauthors() as $author) {
$names = $author->data->display_name;
}
$names = implode(', ', $names);

для получения дополнительной помощи о взрывах массива

http://php.net/manual/pt_BR/function.implode.php

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector