Wie entferne ich mit PHP das letzte Komma aus einer Zeichenfolge?

96

Ich verwende eine Schleife, um Werte aus meiner Datenbank abzurufen, und mein Ergebnis lautet wie folgt:

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

Und ich möchte es so:

'name', 'name2', 'name3'

Ich möchte das Komma nach dem letzten Wert der Schleife entfernen.

JoJo
quelle
11
Sie sollten implodeIhre ursprünglichen Werte mit Kommas versehen, nicht durchlaufen und am Ende entfernen.
Moonwave99

Antworten:

217

Verwenden Sie die rtrimFunktion:

rtrim($my_string, ',');

Der zweite Parameter gibt das zu löschende Zeichen an.

Ander2
quelle
26
Stellen Sie außerdem sicher, dass nach dem Komma kein Leerzeichen steht, da dies sonst fehlschlägt, oder führen Sie rtrim (trim ($ my_string), ',') aus.
Foxhoundn
Hervorragende Antwort!
DiChrist
@ Foxhoundn Dein Kommentar ist Retter. Vielen Dank, Bruder
Jaydeep Goswami
1
Dies funktioniert nicht in einer Schleife, die am Ende ein Komma hinzufügt, da alle Kommas entfernt werden.
LizardKG
25

Versuchen:

$string = "'name', 'name2', 'name3',";
$string = rtrim($string,',');
Boas
quelle
1
Ich habe es bereits versucht, aber es wird folgendermaßen angezeigt: 'name''name2''name3' Dies ist nicht das, was ich brauche
JoJo
Gemäß Ihrem Beispiel müssen Sie diese Funktion nur auf das Endergebnis und nicht auf jeden Wert separat anwenden.
Boaz
Ich verwende eine Schleife. Wie kann ich das Endergebnis der Schleife ermitteln?
JoJo
Das Endergebnis der Schleife wird in einer Variablen gespeichert, oder? Wenden Sie den rtrimAufruf also auf diese Variable an. Wenn Sie immer noch Schwierigkeiten haben, aktualisieren Sie Ihre Frage mit dem Code, der die Schleife erzeugt.
Boaz
Ich mag diese Antwort besonders, weil eines der Probleme mit vielen in PHP integrierten Funktionen darin besteht, dass einige von ihnen ungültig sind und einige Rückgabetypen haben. In diesem Fall habe ich versucht, nur zu schreiben rtrim($string, ','), wann ich schreiben sollte$string = rtrim($string, ',');
Alec
14

Versuchen Sie den folgenden Code:

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

Verwenden Sie diesen Code, um das letzte Zeichen der Zeichenfolge zu entfernen.

VijayS91
quelle
10

Sie können die substrFunktion verwenden, um dies zu entfernen.

$t_string = "'test1', 'test2', 'test3',";
echo substr($t_string, 0, -1);
Annie Chandel
quelle
7

rtrim Funktion

rtrim($my_string,',');

Der zweite Parameter gibt an, dass das Komma von der rechten Seite gelöscht werden soll.

Jitendra Tyagi
quelle
5

verwenden rtrim()

rtrim($string,',');
Sankalp Mishra
quelle
4

Dies wirkt sich auf Ihr Skript aus, wenn Sie mit Multibyte-Text arbeiten, aus dem Sie Teilzeichenfolgen erstellen. In diesem Fall empfehle ich dringend, die mb_ * -Funktionen in Ihrer php.ini zu aktivieren oder dies zu tunini_set("mbstring.func_overload", 2);

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

Ashok Khot
quelle
2

Es ist so einfach wie:

$commaseparated_string = name,name2,name3,;
$result = rtrim($commaseparated_string,',');
Ketan Savaliya
quelle
2

Es ist besser, implode für diesen Zweck zu verwenden. Implode ist einfach und großartig:

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

Ausgabe:

    name1, name2, name3
khandaniel
quelle
Es ist nicht erforderlich, zuerst ein Array aus datenbanklesbaren Werten zu generieren. rtrim & substr sind sowohl gültige als auch gute Lösungen.
Steve Horvath
Nun, Sie haben Recht, aber wenn Sie ein Array haben, ist dies eine praktische Lösung
Khandaniel
1

Sie können eine der folgenden Techniken verwenden, um das letzte Komma (,) zu entfernen.

Lösung 1:

$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.

Lösung 2:

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

Lösung 3:

 $string = "'name', 'name2', 'name3',";  // this is the full string or text.
 $string = substr($string , 0, -1);
 echo $string;  
Majbah Habib
quelle