首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从对象数组的单个列创建逗号分隔的字符串

从对象数组的单个列创建逗号分隔的字符串
EN

Stack Overflow用户
提问于 2011-01-16 22:15:41
回答 14查看 47.5K关注 0票数 24

我使用foreach循环从我的数据库中回显一些值,如果有意义的话,我需要去掉最后一个循环中的最后一个逗号。

我的循环非常简单,如下所示

代码语言:javascript
复制
foreach($results as $result){
  echo $result->name.',';
}

回响着

代码语言:javascript
复制
result,result,result,result,

我只需要去掉那个讨厌的最后一个逗号。

EN

回答 14

Stack Overflow用户

回答已采纳

发布于 2011-01-16 22:21:53

首先,使用输出缓冲获取所有输出。然后,修剪逗号并显示它。所以,像这样做:

代码语言:javascript
复制
ob_start();
foreach($results as $result)
{
   echo $result->name.',';
}
$output = ob_get_clean();

echo rtrim($output, ',');

如果内部循环非常大( OP只是为了简单起见),输出缓冲方法很有用,那么使用OB会更容易,而不会改变循环的内部结构。

票数 -12
EN

Stack Overflow用户

发布于 2011-01-16 22:23:24

更好的:

代码语言:javascript
复制
$resultstr = array();
foreach ($results as $result) {
  $resultstr[] = $result->name;
}
echo implode(",",$resultstr);
票数 114
EN

Stack Overflow用户

发布于 2014-10-26 21:03:16

1.连接到字符串,但在前面添加|

代码语言:javascript
复制
$s = '';
foreach ($results as $result) { 
    if ($s) $s .= '|';
    $s .= $result->name; 
}
echo $s;

2.仅当不是最后一项时回显|

代码语言:javascript
复制
$s = '';
$n = count($results);
foreach ($results as $i => $result) { 
    $s .= $result->name;
    if (($i+1) != $n) $s .= '|';
}
echo $s;

3.加载到数组,然后内爆

代码语言:javascript
复制
$s = array();
foreach ($results as $result) { 
    $s[] = $result->name;
}
echo implode('|', $s);

4. Concat to string,然后cut last | (或rtrim it)

代码语言:javascript
复制
$s = '';
foreach ($results as $result) { 
    $s .= $result->name . '|';
}
echo substr($s, 0, -1); # or # echo rtrim($s, '|');

5.使用array_map()连接字符串

代码语言:javascript
复制
echo implode('|', array_map(function($result) { return $result->name; }, $results));
票数 29
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4705814

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档