2009-09-10 5 views
1

J'ai une chaîne comme suit:php imploser, mais ne pas envisager delimiter supplémentaire

test1, test2, test3, test4, 

Lorsque j'utilise la fonction imploser sur ce que je reviendrai qu'il ya 5 éléments dans le tableau.

Comment ne pas prendre en compte la dernière virgule supplémentaire?

ou mieux encore, comment puis-je sous-traiter cela afin qu'il n'y ait pas de virgule supplémentaire à la fin.

Répondre

5

Vous pouvez supprimer des virgules de fin (ou n'importe quel caractère) en utilisant rtrim(); Essayez ceci:
$ str = rtrim ('test1, test2, test3, test4,', ',');

Voir la doc pour rtrim() @http://us2.php.net/manual/en/function.rtrim.php

+0

ou même d'utiliser la fonction trim() pour retirer celle qui est devant, s'il y en a une. – mauris

0

Peut-être le rtrim() est préférable, comme Arms suggéré. Mais comme vous avez demandé substring, juste pour le faire enregistrer ...

substr($string, 0, -1);

Lorsque le paramètre secound est une valeur négative, il va agir comme strlen($string)-N et vous obtenez la chaîne manquante la dernière N caractères.

-1

Je probablement utiliser

preg_split('#, *#', $str, null, PREG_SPLIT_NO_EMPTY) 

qui serait encore plus flexible avec l'entrée (poignées virgules consécutives, manque d'espace ou espace doublé, etc ...) Bien sûr, cela dépend de la confiance que vous l'entrée restera la même.

Voir preg_split()'s manual entry.

+0

Les gens downvotant des réponses valides? Intéressant. –

Questions connexes