2013-02-01 45 views
0

我試過了很多變化,但是我找不到解決方案。此前的輸出是這樣的:PHP如何刪除最後一個分隔符?

  1. 字b
  2. 字c 等

我已經改變了代碼的某些部分,現在輸出的是:

字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);和很多其他的建議,但沒有結果。

+0

無關,但可以更換'回聲 「".$synonym."」' 「$分隔符。」用'echo'$ separator $synonym「;' – Mike

回答

4

當我做這樣的事情時,我的首選是建立一個字符串數組,然後在輸出最後一個字符串時使用implode。這是特別有用的,因爲那樣我可以做其他事情,如合併組,過濾它們等。

+0

我這麼做應該是非法的 – Madbreaks

+0

我也喜歡這個方法。很乾淨。像'implode($ separator,$ values)''。 – showdev

+0

我也是這麼做的,更多的時候我會照顧承認 –

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); 
} 
相關問題