如何从循环内的字符串中删除最后一个字符

时间:2011-12-05 12:25:37

标签: php

我正在尝试在xml中打印一行中选择的不同类别, 像

<cat_name>meeting, food and drinks, sports</cat_name>

我得到的输出:

<cat_name>meeting, food and drinks, sports,</cat_name> 

我想只删除最后一个逗号。

到目前为止我写的代码是:

$sq="
    select category_main.cat_name
    from category_main
    join category 
        on(category.cat_id=category_main.cat_id)
    where category.event_id='$event_id'
";
$e=mysql_query($sq);

$xml ='<cat_name>';
while($row=mysql_fetch_array($e))
{
    $res=$row['cat_name'];

    //$new = substr($val,0,-1);
    $xml .="$res, ";                
}

$xml .='</cat_name>';
echo $xml;

3 个答案:

答案 0 :(得分:4)

使用可选的第二个参数','

调用trim()
trim($cat_name, ',')

但是,由于你是在while循环中执行此操作,因此应该构建一个数组,然后implode(),而不是在循环中构建字符串。这样可以避免使用额外的逗号。

$arr = array();
while($row=mysql_fetch_array($e))
{
  $arr[] = $row['cat_name'];
}
$cat_name = implode(",", $arr);
// $cat_name is now "meeting, food and drinks, sports"

答案 1 :(得分:0)

你可以通过[我使用我的变量]

来做到这一点
$str = substr($str,0, (strlen($str)-1));

答案 2 :(得分:0)

或使用rtrim,rtrim( $cat , ',' ) http://php.net/rtrim