dongpai6567 2011-08-26 02:33
浏览 71
已采纳

如何从while循环中的最后一个echo中删除逗号?

I need to strip the comma from the last echoed file. So I need to remover the come from the line "$aSong['ID'].'.mp3"},". On the last one that is echoed

while ( $aSong = mysql_fetch_array($sql_get_files) ) {
        //Creates an array of $thisSong[ID], $thisSong[Title], etc.
        // substr removes the first 4 letters of the KEY
        foreach ( $aSong as $sKey => $sValue )
            $thisSong[substr($sKey,4)] = stripslashes($sValue);
        //Ditch $thisSong for the prev value
        $aSong = $thisSong; unset($thisSong);
        $mp3r = '';
        echo '{name:"'.$aSong['Artist'].' '.$aSong['Title'].
             '",mp3:"http://domain.com/uploads/audio/'.$aSong['ID'].'.mp3"},';
}
  • 写回答

2条回答 默认 最新

  • douqiao1887 2011-08-26 02:38
    关注
    while ( $aSong = mysql_fetch_array($sql_get_files) ) {
            //Creates an array of $thisSong[ID], $thisSong[Title], etc. substr removes the first 4 letters of the KEY
            foreach ( $aSong as $sKey => $sValue ) $thisSong[substr($sKey,4)] = stripslashes($sValue);
            //Ditch $thisSong for the prev value
            $aSong = $thisSong; unset($thisSong);
            $mp3r = '';
            $tmp.= '{"name":"'.$aSong['Artist'].' '.$aSong['Title'].'","mp3":"http://domain.com/uploads/audio/'.$aSong['ID'].'.mp3"},';
    }
    echo rtrim($tmp,',');
    

    You could also just populate an array:

    $tmp_arr = array();
    while ( $aSong = mysql_fetch_array($sql_get_files) ) {
            //Creates an array of $thisSong[ID], $thisSong[Title], etc. substr removes the first 4 letters of the KEY
            foreach ( $aSong as $sKey => $sValue ) $thisSong[substr($sKey,4)] = stripslashes($sValue);
            //Ditch $thisSong for the prev value
            $aSong = $thisSong; unset($thisSong);
            $mp3r = '';
            $tmp_arr[] = '{"name":"'.$aSong['Artist'].' '.$aSong['Title'].'","mp3":"http://domain.com/uploads/audio/'.$aSong['ID'].'.mp3"}';
    }
    echo implode(',',$tmp_arr);
    

    You also need to quote your JSON keys so {mp3:"http...mp3"} becomes {"mp3":"http...mp3"}. If you're trying to output JSON to the browser for AJAX or whatever, you'll need something like this instead:

    echo '{"0":[' . implode(',',$tmp_arr) . ']}';
    

    Once you have all your output, take it over to JSONlint.com and validate it.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私