Bonjour, j'utilise loop pour obtenir les valeurs de ma base de données et mon résultat est le suivant:
'name', 'name2', 'name3',
Et je le veux comme ça:
'name', 'name2', 'name3'
Je veux supprimer la virgule après la dernière valeur de la boucle.
Merci
Essayer:
$string = "'name', 'name2', 'name3',";
$string = rtrim($string,',');
Essayez ci-dessous Code:
$my_string = "'name', 'name2', 'name3',";
echo substr(trim($my_string), 0, -1);
utilisez ce code pour supprimer le dernier caractère de la chaîne.
Vous pouvez utiliser la fonction substr
pour le supprimer.
$t_string = "'test1', 'test2', 'test3',";
echo substr($t_string, 0, -1);
rtrim
fonction
rtrim($my_string,',');
Le deuxième paramètre indique que la virgule doit être supprimée du côté droit.
utiliser rtrim()
rtrim($string,',');
Cela aura un impact sur votre script si vous travaillez avec du texte multi-octets à partir duquel vous sous-chaîne. Si tel est le cas, je vous recommande vivement d'activer les fonctions mb_ * dans votre php.ini ou de faire ceci ini_set("mbstring.func_overload", 2);
$string = "'test1', 'test2', 'test3',";
echo mb_substr($string, 0, -1);
Au début, j'ai essayé sans espace rtrim($arraynama,",");
et j'ai obtenu un résultat invalide.
Puis j'ai ajouté un espace et obtenu un résultat valide:
$newarraynama=rtrim($arraynama,", ");
c'est aussi simple que:
$commaseparated_string = name,name2,name3,;
$result = rtrim($commaseparated_string,',');
Il vaut mieux utiliser imploser à cet effet. Implode est facile et génial:
$array = ['name1', 'name2', 'name3'];
$str = implode(', ', $array);
Sortie:
name1, name2, name3