循环并在末尾删除逗号

Posted

技术标签:

【中文标题】循环并在末尾删除逗号【英文标题】:Looping with removal of comma at the end 【发布时间】:2012-02-20 18:28:43 【问题描述】:

我需要有关如何从这个循环变量中删除最后一个逗号的帮助。

$image_meta .= "\"id\":\"".$img_id."\",\"client\":\"".$img_desc."\",\"desc\":\"Test\",";

FireFox 似乎不介意,但 IE 会。

如果有任何方法可以摆脱 .= 并以另一种方式循环我的数据,我将不胜感激。

【问题讨论】:

为什么不用内置的json序列化器? 【参考方案1】:

我们需要查看脚本的其余部分。 但是根据我对您的情况的了解,当您回显 $image_meta (我想在循环之后)时,您可以执行以下两种操作之一:

echo rtrim($image_meta,',');

echo substr($image_meta,0,-1);

【讨论】:

啊,我们走了,非常非常非常感谢,这成功了。最受好评【参考方案2】:

你可以这样做:

$ar_image_meta = array();

for/foreach() // your loop

  $ar_image_meta[] = '"id":"'.$img_id.'","client":"'.$img_desc.'","desc":"Test"';


$image_meta = implode(", ", $ar_image_meta);

如果您的目标是将 php 变量“转换”为 javascript 变量,请查看json_encode()

【讨论】:

【参考方案3】:

看看内爆:

http://php.net/manual/en/function.implode.php

澄清一下,我猜你正在做类似的事情:

$image_meta = '';
foreach($blahs as $blah)
   $image_meta .= "\"id\":\"".$img_id."\",\"client\":\"".$img_desc."\",\"desc\":\"Test\",";

这样的事情应该可以工作:

$image_meta_arr = array();
foreach($blahs as $blah)
   array_push($image_meta, "\"id\":\"".$img_id."\",\"client\":\"".$img_desc."\",\"desc\":\"Test\"";


$image_meta = implode(',', $image_meta_arr);

【讨论】:

我检查了整个 implode 函数,但仅使用 1 行就失败了,知道如何植入它吗?

以上是关于循环并在末尾删除逗号的主要内容,如果未能解决你的问题,请参考以下文章

为啥以及何时应该在块的末尾使用逗号?

如何在除最后一行之外的每一行末尾添加逗号?

在批处理文件中拆分以逗号分隔的字符串并在循环中调用 sqlplus 函数

删除数组列表中的 ]、[、空格和逗号并在 java 中转置

去掉 PL/SQL 函数末尾的逗号 [Oracle PL/SQL]

如何在while循环中删除逗号? [复制]