我使用foreach循环从我的数据库中回显一些值,如果有意义的话,我需要去掉最后一个循环中的最后一个逗号。
我的循环非常简单,如下所示
foreach($results as $result){
echo $result->name.',';
}
回响着
result,result,result,result,
我只需要去掉那个讨厌的最后一个逗号。
发布于 2011-01-16 22:21:53
首先,使用输出缓冲获取所有输出。然后,修剪逗号并显示它。所以,像这样做:
ob_start();
foreach($results as $result)
{
echo $result->name.',';
}
$output = ob_get_clean();
echo rtrim($output, ',');
如果内部循环非常大( OP只是为了简单起见),输出缓冲方法很有用,那么使用OB会更容易,而不会改变循环的内部结构。
发布于 2011-01-16 22:23:24
更好的:
$resultstr = array();
foreach ($results as $result) {
$resultstr[] = $result->name;
}
echo implode(",",$resultstr);
发布于 2014-10-26 21:03:16
1.连接到字符串,但在前面添加|
$s = '';
foreach ($results as $result) {
if ($s) $s .= '|';
$s .= $result->name;
}
echo $s;
2.仅当不是最后一项时回显|
$s = '';
$n = count($results);
foreach ($results as $i => $result) {
$s .= $result->name;
if (($i+1) != $n) $s .= '|';
}
echo $s;
3.加载到数组,然后内爆
$s = array();
foreach ($results as $result) {
$s[] = $result->name;
}
echo implode('|', $s);
4. Concat to string,然后cut last |
(或rtrim
it)
$s = '';
foreach ($results as $result) {
$s .= $result->name . '|';
}
echo substr($s, 0, -1); # or # echo rtrim($s, '|');
5.使用array_map()
连接字符串
echo implode('|', array_map(function($result) { return $result->name; }, $results));
https://stackoverflow.com/questions/4705814
复制相似问题