J'utilise une boucle pour obtenir des valeurs de ma base de données et mon résultat est comme:
'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.
Réponses:
Utilisez la rtrim
fonction:
rtrim($my_string, ',');
Le deuxième paramètre indique le caractère à supprimer.
Essayer:
$string = "'name', 'name2', 'name3',";
$string = rtrim($string,',');
rtrim
appel à cette variable. Si vous rencontrez toujours des difficultés, mettez à jour votre question avec le code qui produit la boucle.
rtrim($string, ',')
, quand je devrais écrire$string = rtrim($string, ',');
Vous pouvez utiliser la substr
fonction pour supprimer cela.
$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.
utilisation rtrim()
rtrim($string,',');
Cela aura un impact sur votre script si vous travaillez avec du texte multi-octets à partir duquel vous effectuez une sous-chaîne. Si tel est le cas, je recommande vivement d'activer les fonctions mb_ * dans votre php.ini ou de le faireini_set("mbstring.func_overload", 2);
$string = "'test1', 'test2', 'test3',";
echo mb_substr($string, 0, -1);
c'est aussi simple que:
$commaseparated_string = name,name2,name3,;
$result = rtrim($commaseparated_string,',');
Il est préférable d'utiliser implode à cette fin. Imploser est facile et génial:
$array = ['name1', 'name2', 'name3'];
$str = implode(', ', $array);
Production:
name1, name2, name3
Vous pouvez utiliser l'une des techniques suivantes pour supprimer la dernière virgule (,)
Solution 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.
Solution 2:
$string = '10,20,30,'; // this is the full string or text.
$string = rtrim($string,',');
echo $string; // to print update string.
Solution 3:
$string = "'name', 'name2', 'name3',"; // this is the full string or text.
$string = substr($string , 0, -1);
echo $string;
Solutions à appliquer lors d'une boucle:
//1 - Using conditional:
$source = array (1,2,3);
$total = count($source);
$str = null;
for($i=0; $i <= $total; $i++){
if($i < $total) {
$str .= $i.',';
}
else {
$str .= $i;
}
}
echo $str; //0,1,2,3
//2 - Using rtrim:
$source = array (1,2,3);
$total = count($source);
$str = null;
for($i=0; $i <= $total; $i++){
$str .= $i.',';
}
$str = substr($str,0,strlen($str)-1);
echo $str; //0,1,2,3
implode
vos valeurs d'origine avec des virgules, ne pas les parcourir en boucle et supprimer des éléments à la fin.