2010-08-17 3 views
44

Comment puis-je diviser une chaîne à la première occurrence de - (signe moins) en deux $ vars avec PHP?

J'ai trouvé comment diviser sur chaque "-" mais, pas seulement sur la première occurrence.

exemple:

this - is - line - of whatever - is - relevant 
$var1 = this 
$var2 = is - line - of whatever - is - relevant 

Notez aussi dépouillé le premier "-".

Merci d'avance pour l'aide!

Répondre

29
$array = explode('-', 'some-string', 2); 

Ensuite, vous pouvez faire $var1=$array[0] et $var2=$array[1].

+0

Merci, je viens d'éditer ma question avec plus de reqs, désolé. – Jimbo

+0

Merci Brad, ce sera également utile. J'apprécie votre temps. – Jimbo

103

Il est très simple, en utilisant un paramater supplémentaire pour explode que beaucoup de gens ne réalisent pas est là:

list($before, $after) = explode('-', $source, 2);

+1

C'est cool. Alors, je $ fixed_string = str_replace ("-", "", $ before); se débarrasser de la -? – Jimbo

+1

Non, le premier '-' sera supprimé dans le cadre de la fonction' explode() '. – staticsan

+1

Cela a parfaitement fonctionné pour mes besoins. Je me demandais que si j'ai ajouté un milieu $ alors exploser - source 3 ?? Est-ce que cela fonctionnerait ou devrais-je utiliser array [x] comme mentionné par Brad? – Jimbo

0

Voici ce dont vous avez besoin: en utilisant la liste() avec explode():

list($var1, $var2) = explode(' - ', 'this - is - line - of whatever - is - relevant', 2); 

Notez les espaces autour du "-" (signe moins)

1

Vous pouvez utiliser la fonction strtok:

$first = strtok($string, '-'); 
Questions connexes