PHP:使用逗号分隔值创建字符串,但字符串末尾没有逗号

Posted

技术标签:

【中文标题】PHP:使用逗号分隔值创建字符串,但字符串末尾没有逗号【英文标题】:PHP: create string with values separated by comma BUT without comma at the end of string 【发布时间】:2014-03-14 14:05:11 【问题描述】:

我正在使用以下 php sn-p 将数据回显到 html 页面。 到目前为止,这工作正常,并返回如下示例所示的结果: 值1,值2,值3,值4,值5,

如何防止它在字符串末尾添加逗号,同时保持单个值之间的逗号?

我的 PHP:

<?php foreach ($files->tags->fileTag as $tag)  echo $tag . ", ";  ?>

提前非常感谢您提供的任何帮助,蒂姆。

【问题讨论】:

【参考方案1】:

如果

$files->tags->fileTag

是一个数组,那么你可以使用

$str = implode(', ', $files->tags->fileTag);

【讨论】:

谢谢。事实证明,这对我来说是最好的解决方案。 :)【参考方案2】:
implode(", ", $files->tags->fileTag);

【讨论】:

【参考方案3】:

一个简单的方法是保留一个计数器,并检查每条记录的索引与总项目标签的比较。

<?php 
$total = count($files->tags->fileTag);
foreach ($files->tags->fileTag as $index =>  $tag)  
   if($index != $total - 1)
        echo $tag.',';
      else
        echo $tag;
     
?>

【讨论】:

谢谢,这看起来也很不错。我忘了提到我的输入是一个 xml 字符串,所以我猜 $index 不起作用。【参考方案4】:
<?php
echo implode(",",$files->tag->fileTag);
?>

【讨论】:

然后随意验证答案【参考方案5】:

假设您正在使用数组进行迭代,那么不使用 foreach 循环如何,而是使用常规 for 循环并在末尾放置一个 if 语句来检查它是否达到循环的长度并回显 $自己标记?

我脑海中的伪代码:

for($i = 0, $i < $files.length, $i++)
    if ($i < $files.length)
        echo $tag . ", ";
     else 
        echo $tag;
    

希望对你有帮助

编辑:内爆答案 defo 似乎比这更好,我可能会选择那些 x

【讨论】:

谢谢,这也很有帮助! :)

以上是关于PHP:使用逗号分隔值创建字符串,但字符串末尾没有逗号的主要内容,如果未能解决你的问题,请参考以下文章

用PHP检查逗号分隔的字符串中是不是存在值[重复]

优化逗号分隔值正则表达式

在PHP中将字符串[基本上是逗号分隔的数字]转换为整数的最佳方法[重复]

php如何将逗号分隔的多个json格式的字符串作为一个值插入到mysql表中? [复制]

用于逗号分隔值的PHP'foreach'[重复]

PHP数组转字符串(属性加单(双)引号,逗号分隔)