2011-02-01 26 views
2

我有以下產生的結果給我。PHP - 刪除循環中的最後2個字符

foreach($authArray as $key=>$value){ 
    $query = mysql_query("SELECT * FROM table WHERE id='$value' LIMIT 1"); 
    $author = mysql_fetch_assoc($query); 
    echo $author['fullname'] .', '; 
} 

它打印出來的完美,但它仍然增加了逗號和空格,最後來看,是有辦法,我可以從最後的結果剝離這一點,所以它的:

name, name, name, name 

相反以下

name, name, name, name, 

乾杯

回答

1

相反呼應每位作者出來的,你可以把它們放在一個〜應變g,然後簡單地使用trim()來取消尾隨逗號並最終回顯整個字符串。

+0

你問了一個問題,一個問題的答案。要麼你應該在對原始問題的評論中提出你的問題,要麼你應該將你的回答寫爲答案。 – coreyward 2011-02-01 04:32:08

6

更好的方法是將數據庫結果的處理從查看/輸出邏輯中分離出來,然後您可以使用implode來回避所有問題,以允許PHP將每個作者連接到一起一個字符串,通過您的逗號分隔的和一個空格分開:

// your loop { 
    $authors[] = $author['fullname']; 
} 

// your output 
echo implode(', ', $authors); 
1

手動這將可能工作

foreach($authArray as $key=>$value){ 
    $query = mysql_query("SELECT * FROM table WHERE id='$value' LIMIT 1"); 
    $author = mysql_fetch_assoc($query); 
    //echo $author['fullname'] .', '; 
} 

$name_count = count($author[]); 

for($x=0;$x<$name_count ;$x++){ 
    if($x == $name_count -1){ 
     echo $author['fullname']; 
    }else{ 
     echo $author['fullname'].", "; 
    } 
} 

的理念是,檢測的最後一個數組索引,這樣我們就可以申請每名之後的所有逗號,除了最後一個。

0

永遠不要呼應裏面的foreach

$var = ''; 
foreach($authArray as $key=>$value){ 
    $query = mysql_query("SELECT * FROM table WHERE id='$value' LIMIT 1"); 
    $author = mysql_fetch_assoc($query); 
    $var .= $author['fullname'] .', '; 
} 

echo trim($var,', '); 
相關問題