PHP如何删除最后一个分隔符?

时间:2013-02-01 20:29:19

标签: php separator

我尝试了很多变化,但我找不到解决方案。以前的输出是这样的:

  1. word a
  2. 字b
  3. 字c 等
  4. 我已经更改了部分代码,现在输出是:

    字a |字b |字c |

    如何删除最后一个分隔符?

    代码是:

    <div id="right">
    
            <div id="synonyms">
            <?
    
            $separator = '<span class="pipe">|</span>';
    
            $sql = mysql_query("SELECT DISTINCT word, id_word FROM words WHERE word LIKE '$word' ORDER BY word ASC LIMIT 100");
            echo mysql_error();
    
            while ($row=mysql_fetch_row($sql))
                {
                    $word_synonym = $row[0];        
                    $id_word_synonym = $row[1];                 
    
    
                            $sql2 = mysql_query("SELECT DISTINCT synonym, id_synonym FROM synonyms WHERE id_word = '$id_word_synonym' ORDER BY synonym ASC");
                            echo mysql_error();
                            $num_results =mysql_num_rows($sql2);
    
                            while ($row=mysql_fetch_row($sql2))
                                {
                                $synonym = $row[0];
                                $id_synonym = $row[1];
    
                                $synonym2 = str_replace(" ", "+", $synonym);
    
                                echo "".$separator."<a href=".$site_url."/?word=".$synonym2.">".$synonym."</a>  ";
    
    
    
                                }
    
                }
            ?>
            </div>
    

    我尝试添加$separator = substr($separator, -1, 0);和许多其他建议,但没有结果。

2 个答案:

答案 0 :(得分:4)

我喜欢这样做是为了构建一个字符串数组,然后在输出最终字符串时使用implode。这特别有用,因为我可以做其他事情,比如合并组,过滤它们等等。

答案 1 :(得分:0)

这是在之前发布和删除的,但我认为值得包括作为可选方法。虽然我更喜欢Kolink的方法,但我也使用了它:

使用迭代器($ i)来标识第一个(或最后一个)项目。

$i=0;
while ($row = mysql_fetch_row($sql2)) {
  $i++;
  $synonym = $row[0];
  $id_synonym = $row[1];
  $synonym2 = str_replace(" ", "+", $synonym);
  echo ($i>1?$separator:"").'<a href="$site_url/?word=$synonym2">$synonym</a>';
}

不是这个答案的一部分,但这里是Kolink(可以说是优越的)方法的一个例子:

$links=array();

while ($row = mysql_fetch_row($sql2)) {
  $synonym = $row[0];
  $id_synonym = $row[1];
  $synonym2 = str_replace(" ", "+", $synonym);
  $links[]='<a href="$site_url/?word=$synonym2">$synonym</a>';
}

if (!empty($links)) {
  echo implode($separator,$links);
}