2017-07-13 1 views
1

Je suis nouveau à PHP et besoin d'aide.PHP preg_split stocker dans plusieurs variables

J'ai une chaîne d'entrée qui ressemble à ceci: 968:-50px, 750:-300px, 590:-500px

Ceux-ci peuvent être considérés comme trois éléments chacun avec 2 valeurs: a:b, a:b, a:b

J'utilise actuellement explode() mais je sais que ce n'est pas correct. Je pense que preg_split() pourrait être la fonction correcte à utiliser?

En utilisant l'exemple a:b, voici un code:

 $string = '968:-50px, 750:-300px, 590:-500px' 
     $array = explode(',', $string); 

     foreach ($array as $a) { 
     echo ' 
     @media only screen and (max-width: '.$a.'px) { 
      .div { 
      background-position: '.$b.'; 
      } 
     }'; $array[] = $a; 
     } 

Comment puis-je extraire la valeur pour $b et passer que dans la boucle?

Merci pour votre aide!

+0

Pourquoi 'explode' ne fonctionne pas pour vous? Pourquoi pensez-vous que c'est incorrect? – GrumpyCrouton

+0

Dans le code ci-dessus, je suis seulement obtenir 3 valeurs -à-dire: '968: -50px' et' 750: '-300px' et 590: -500px' J'ai besoin chacun de ceux qui doivent être divisés en 2 valeurs peut être passé à la boucle. c.-à-foreach '$ a =' $ 968' b = -50px' '$ a =' $ 750' b = -300px' '$ a =' $ 590' b = -500px' – scorey25

Répondre

3

Vous devez à nouveau exploser chacun de vos résultats dans la boucle.

$string = '968:-50px, 750:-300px, 590:-500px' 
$array = explode(',', $string); 

foreach ($array as $a) { 
    $ab = explode(':', $a); 
    echo '@media only screen and (max-width: '.$ab[0].'px) { 
     .div { 
      background-position: '.$ab[1].'; 
      } 
     }'; 
    $array[] = $a; 
} 
+0

merci les os! fonctionne parfaitement!! – scorey25