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.


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.


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,',');

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.


10

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

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

7

rtrim Funktion

rtrim($my_string,',');

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



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);


2

Es ist so einfach wie:

$commaseparated_string = name,name2,name3,;
$result = rtrim($commaseparated_string,',');

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

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;  
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.