124 votes

Comment supprimer une virgule de la fin d'une chaîne ?

Je veux enlever la virgule de la fin d'une chaîne. Tel qu'il est maintenant, j'utilise

$string = substr($string,0,-1);

mais cela ne supprime que le dernier caractère de la chaîne. J'ajoute la chaîne dynamiquement, donc parfois il n'y a pas de virgule à la fin de la chaîne. Comment puis-je demander à PHP de supprimer la virgule de la fin de la chaîne s'il y en a une à la fin ?

328voto

Sigurd Points 2898
$string = rtrim($string, ',');

Docs pour rtrim ici

45voto

Ben Russell Points 695

C'est une question classique, avec deux solutions. Si vous souhaitez supprimer exactement une virgule, qui peut ou non être là, utilisez :

if (substr($string, -1, 1) == ',')
{
  $string = substr($string, 0, -1);
}

Si vous souhaitez supprimer toutes les virgules de la fin d'une ligne, utilisez le plus simple :

$string = rtrim($string, ',');

La fonction rtrim (et ltrim correspondant pour la coupe à gauche) est très utile car vous pouvez spécifier une plage de caractères à supprimer, c'est-à-dire pour supprimer les virgules et les espaces blancs que vous écririez :

$string = rtrim($string, ", \t\n");

15voto

user187291 Points 28951

je suppose que tu concatènes quelque chose dans la boucle, comme

foreach($a as $b)
  $string .= $b . ',';

beaucoup mieux est de collecter des éléments dans un tableau, puis de le joindre avec un délimiteur dont vous avez besoin

foreach($a as $b)
  $result[] = $b;

$result = implode(',', $result);

ceci résout les problèmes de traînée et de double délimiteur qui se produisent habituellement avec la concaténation

8voto

cesar.mi Points 101

Si vous concaténez quelque chose dans la boucle, vous pouvez le faire de cette manière aussi :

$coma = "";
foreach($a as $b){
    $string .= $coma.$b;
    $coma = ",";
}

3voto

Anand Points 5381

jetez un œil à la fonction rtrim

rtrim ($string , ",");

la ligne ci-dessus supprimera un caractère si le dernier caractère est une virgule

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X