2009-05-21 6 views
0

J'ai un groupe de chaînes que j'ai besoin de tronquer dans un tableau. La chaîne doit être divisée sur '/', ',', 'avec' ou '&'. Malheureusement, il est possible qu'une chaîne contienne deux des chaînes qui doivent être divisées, donc je ne peux pas utiliser split ou exploser.chaîne de fractionnement basée sur des valeurs dans un tableau

Par exemple, une chaîne pourrait dire « premier passé/aller au-delà & puis tourner », donc je suis en train d'obtenir un tableau qui renverrait tableau (« premier passé », « aller au-delà », « puis tourner »)

Le code J'utilise actuellement est

 
$splittersArray=array('/', ',', ' with ','&'); 
    foreach($splittersArray as $splitter){ 
if(strpos($string, $splitter)){ 
    $splitString = split($splitter, $string); 
    foreach($splitString as $split){ 

Je ne peux pas sembler trouver une fonction en PHP qui me permet de le faire. Ai-je besoin de faire passer la chaîne dans le haut de l'entonnoir, et continuer à passer par le 'foreach' après que la chaîne a été divisée encore et encore?

Cela ne semble pas très efficace. Toutes les suggestions seraient géniales. Merci, Pete

+1

« Malheureusement, il est possible pour une chaîne pour contenir deux des chaînes qui doit être partagé sur, je ne peux pas utilisez split ou exploser. " pouvez-vous expliquer ce que vous entendez par là? –

+0

Je viens d'ajouter un exemple pour clarifier – pedalpete

Répondre

8

Utilisez une expression régulière et preg_split.

Dans le cas que vous mentionnez, vous obtiendrez le tableau de répartition avec:

$splitString = preg_split('/(\/|\,| with |\&/)/', $string); 
+0

Battez-moi! ;) Agréable – John

Questions connexes