2012-02-20 160 views
1

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

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

FireFox似乎并不介意,但IE做的。

如果有什么办法可以摆脱。=和以另一种方式循环我的数据,我会非常感激。

+2

不用你为什么内置的json序列化程序? – 2012-02-20 18:30:25

回答

4

我们需要查看脚本的其余部分。 但是从我了解你的情况,当你回声$ image_meta(循环后,我想)你可以做的两个一:

echo rtrim($image_meta,','); 

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

啊,我们走了,非常非常感谢你,这没有把戏。最受赞赏 – Khaled 2012-02-20 18:36:48

1

看看破灭:

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); 
+0

我检查了整个implode函数,但没有把它用于这1行,任何想法如何植入它? – Khaled 2012-02-20 18:33:00

+0

刚刚更新,以澄清我的意思:) – MarkR 2012-02-20 18:45:07

1

你可以这样做:

$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()