【问题标题】: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序列化器?

标签: php loops comma


【解决方案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 行就失败了,知道如何植入它吗?
    猜你喜欢
    • 1970-01-01
    • 2021-11-24
    • 2011-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-31
    • 2012-05-20
    相关资源
    最近更新 更多