1

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

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

FireFox 似乎并不介意,但 IE 会。

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

4

3 回答 3

4

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

echo rtrim($image_meta,',');

或者

echo substr($image_meta,0,-1);
于 2012-02-20T18:32:31.010 回答
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);
于 2012-02-20T18:30:28.180 回答
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().

于 2012-02-20T18:32:03.413 回答