2011-02-01 8 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

代わりの各著者をエコーのあなたはstrinでそれらを置くことができますgを入力し、最後にtrim()を使用して末尾のカンマを取り除き、最後に文字列全体をエコーし​​ます。

+0

内エコーしません。あなたは元の質問に対するコメントであなたの質問をしていたか、答えとしてあなたの回答を書いたはずです。 – coreyward

+0

良い点、私はそれをステートメントに編集します。 – joshcartme

6

これを実行するより良い方法は、ビュー/出力ロジックからデータベース結果の処理を切り離すことです。次に、implodeを使用して問題をすべて回避して、PHPを作成者のそれぞれに参加させることができます

$author['fullname'] = substr($author['fullname'], 0, -2);

REFEを使用して

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

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

は単なる文字列にデータをconcateして、最後の2つの文字を削除します。あなたのコンマの区切り文字とスペースで分割し、単一の文字列、 R substrhttp://php.net/manual/en/function.substr.php

1

のためのマニュアルは、これはおそらくアイデアは、我々は最後の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,', '); 
関連する問題