我正在尝试连接作者姓名,当文章中有多个作者时,但由于某种原因,它会添加额外的逗号。这是我使用的代码:
$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 :(得分: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);
获取有关阵列内爆的更多帮助