PHPを使用して文字列から最後のコンマを削除するにはどうすればよいですか?


96

ループを使用してデータベースから値を取得していますが、結果は次のようになります。

'name', 'name2', 'name3',

そして私はこのようにしたいです:

'name', 'name2', 'name3'

ループの最後の値の後のコンマを削除したいのですが。


11
implode元の値はコンマでループするのではなく、コンマを使用して、最後にあるものを削除する必要があります。
moonwave99 2013年

回答:


217

rtrim関数を使用します。

rtrim($my_string, ',');

2番目のパラメーターは、削除する文字を示します。


26
また、コンマの後にスペースがないことを確認してください。末尾にスペースがないと、失敗します。または、rtrim(trim($ my_string)、 '、')を実行します。
Foxhoundn

正解です。
DiChrist 2016年

@Foxhoundnあなたのコメントは救世主です。おかげで仲間
ジェイディープゴスワミ2017

1
これは、すべてのコンマを削除するため、最後にコンマを追加するループでは機能しません。
LizardKG

25

試してください:

$string = "'name', 'name2', 'name3',";
$string = rtrim($string,',');

1
私はすでに試しましたが、次のように表示されます: 'name''name2''name3'これは私が必要とするものではありません
JoJo

あなたの例では、この関数は最終結果にのみ適用する必要があり、各値に個別に適用する必要はありません。
ボアズ

ループを使用しているので、ループの最終結果を知るにはどうすればよいですか?
ジョジョ

ループの最終結果は変数に格納されますよね?したがって、rtrimその変数に呼び出しを適用します。それでも問題が解決しない場合は、ループを生成するコードで質問を更新してください。
ボアズ2013年

多くのPHP組み込み関数の問題の1つは、一部の関数が無効であり、一部の関数が戻り値の型を持っていることです。この場合、書くrtrim($string, ',')べきだったときに、ただ書こうとしました$string = rtrim($string, ',');
Alec

14

以下のコードを試してください:

$my_string = "'name', 'name2', 'name3',";
echo substr(trim($my_string), 0, -1);

このコードを使用して、文字列の最後の文字を削除します。



7

rtrim 関数

rtrim($my_string,',');

2番目のパラメーターは、コンマが右側から削除されることを示します。



4

サブストリング化したマルチバイトテキストを操作する場合、スクリプトに影響します。この場合、php.iniでmb_ *関数を有効にするか、これを行うことを強くお勧めしますini_set("mbstring.func_overload", 2);

$string = "'test1', 'test2', 'test3',";
echo mb_substr($string, 0, -1);



2

そのためには、インプロードを使用することをお勧めします。Implodeは簡単で素晴らしいです:

    $array = ['name1', 'name2', 'name3'];
    $str = implode(', ', $array);

出力:

    name1, name2, name3

最初にデータベースが読み取った値から配列を生成する必要はありません。rtrimとsubstrはどちらも有効なソリューションであり、優れたソリューションです。
スティーブHorvath

まあ、あなたは正しいですが、配列がある場合、これは便利な解決策です
khandaniel

1

次のいずれかの方法を使用して、最後のコンマ(、)を削除できます。

Solution1:

$string = "'name', 'name2', 'name3',";  // this is the full string or text.
$string = chop($string,",");            // remove the last character (,) and store the updated value in $string variable.
echo $string;                           // to print update string.

解決策2:

$string = '10,20,30,';              // this is the full string or text.
$string = rtrim($string,',');
echo $string;                       // to print update string.

解決策3:

 $string = "'name', 'name2', 'name3',";  // this is the full string or text.
 $string = substr($string , 0, -1);
 echo $string;  
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.