我有以下内容为我产生结果。
foreach($authArray as $key=>$value){
$query = mysql_query("SELECT * FROM table WHERE id='$value' LIMIT 1");
$author = mysql_fetch_assoc($query);
echo $author['fullname'] .', ';
}
它完美地打印出来,除了在最后一次运行中它仍然添加了逗号和空格,有没有办法可以从最后的结果中删除它,所以它:
name, name, name, name
而不是以下
name, name, name, name,
干杯
答案 0 :(得分:6)
更好的方法是从视图/输出逻辑中分离数据库结果的处理,然后您可以使用implode
一起回避问题,以允许PHP加入您的每一个将作者组合成一个字符串,用逗号和空格的分隔符分隔:
// your loop {
$authors[] = $author['fullname'];
}
// your output
echo implode(', ', $authors);
答案 1 :(得分:2)
只需将数据连接成一个字符串,然后使用
删除最后两个字符 $author['fullname'] = substr($author['fullname'], 0, -2);
答案 2 :(得分:1)
不是回应每个作者,而是将它们放在一个字符串中,然后简单地使用trim()取下尾随的逗号,最后回显整个字符串。
答案 3 :(得分:1)
这可能会起作用
foreach($authArray as $key=>$value){
$query = mysql_query("SELECT * FROM table WHERE id='$value' LIMIT 1");
$author = mysql_fetch_assoc($query);
//echo $author['fullname'] .', ';
}
$name_count = count($author[]);
for($x=0;$x<$name_count ;$x++){
if($x == $name_count -1){
echo $author['fullname'];
}else{
echo $author['fullname'].", ";
}
}
我们的想法是检测最后一个数组索引,以便我们可以在每个名称之后应用除最后一个之外的所有逗号。
答案 4 :(得分:0)
不要在foreach内部回应
$var = '';
foreach($authArray as $key=>$value){
$query = mysql_query("SELECT * FROM table WHERE id='$value' LIMIT 1");
$author = mysql_fetch_assoc($query);
$var .= $author['fullname'] .', ';
}
echo trim($var,', ');