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

新手上路,请多包涵

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

我的循环很简单,如下所示

foreach($results as $result){
  echo $result->name.',';
}

哪个呼应出来

result,result,result,result,

我只需要取消那个讨厌的最后一个逗号。

原文由 Cecil 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 282
2 个回答

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

 ob_start();
foreach($results as $result)
{
   echo $result->name.',';
}
$output = ob_get_clean();

echo rtrim($output, ',');

如果内部循环非常大(并且 OP 在这里发布只是为了简洁起见),则输出缓冲方法会有所帮助,然后在不更改循环内部的情况下使用 OB 会更容易。

原文由 shamittomar 发布,翻译遵循 CC BY-SA 2.5 许可协议

更好的:

 $resultstr = array();
foreach ($results as $result) {
  $resultstr[] = $result->name;
}
echo implode(",",$resultstr);

原文由 LeleDumbo 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏