用于连接添加额外的逗号

时间:2017-06-01 15:53:04

标签: php arrays concatenation

我正在尝试连接作者姓名,当文章中有多个作者时,但由于某种原因,它会添加额外的逗号。这是我使用的代码:

        $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 , ,

任何想法为什么?

2 个答案:

答案 0 :(得分:2)

无需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));

答案 1 :(得分:0)

您可以使用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