Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 9 sur 9
  1. #1
    Membre du Club
    Inscrit en
    février 2008
    Messages
    372
    Détails du profil
    Informations forums :
    Inscription : février 2008
    Messages : 372
    Points : 48
    Points
    48

    Par défaut mettre une variable dans un array

    Bonjours,

    après avoir fait des recherches sur le net j'arrive pas à trouver une solutions à mon problème ou alors il y en a pas.

    Au dernier recoure je fais appel a vous.

    j'aimerai mettre une variable dans mon array j'ai fait comme sa:

    Code :
    1
    2
    3
    4
     
    $pays_traite = "'au','nz','fr'";
    	echo $pays_traite;
    	$array_pays = array($pays_traite);
    mais sa marche pas si quelqu'un(e) peut m'aider ce serait gentille

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro Vincent
    Inscrit en
    juillet 2005
    Messages
    19 821
    Détails du profil
    Informations personnelles :
    Nom : Homme Vincent

    Informations forums :
    Inscription : juillet 2005
    Messages : 19 821
    Points : 26 099
    Points
    26 099

    Par défaut

    Avec eval :
    Code :
    eval('$array_pays=(' . $pays_traite . ');');
    Le mieux est quand même de revoir la facon dont arrivent tes données en entrée.

  3. #3
    Modérateur

    Inscrit en
    septembre 2010
    Messages
    7 957
    Détails du profil
    Informations forums :
    Inscription : septembre 2010
    Messages : 7 957
    Points : 9 507
    Points
    9 507

    Par défaut

    les guillemets c'est obligé ? parce qu'un explose suffirait,

    EDIT : au pire un petit regex :

    Code :
    1
    2
    3
    $pays_traite = "'au','nz','fr'";
    preg_match_all('/\'(.*?)\',?/', $pays_traite, $matches);
    print_r($matches[1]);
    ou avec PHP 5.3 et str_getcsv
    Code :
    1
    2
    3
    $pays_traite = "'au','nz','fr'";
    $array = str_getcsv($pays_traite, ',', '\'');
    print_r($array);
    ou si < PHP 5.3 fgetcsv
    Code :
    1
    2
    3
    4
    $pays_traite = "'au','nz','fr'";
    $handle = fopen('data:,' . urlencode($pays_traite), 'r');
    $array = fgetcsv($handle, 0, ',', '\'');
    print_r($array);
    bref plein de solutions pas forcement géniale, je rejoins sabotage pour sa remarque

  4. #4
    Membre du Club
    Inscrit en
    février 2008
    Messages
    372
    Détails du profil
    Informations forums :
    Inscription : février 2008
    Messages : 372
    Points : 48
    Points
    48

    Par défaut

    Merci

    mais j'ai ce message d'erreur :

    Parse error: syntax error, unexpected ',' in /stats/stats.php(118) : eval()'d code on line 1
    et honnêtement je maitrise pas très bien le eval() enfin tu vien de me le faire découvrir

    j'ai fait comme sa:

    Code :
    1
    2
    3
    4
    5
    6
    	$pays_traite = "'au','nz','fr'";
    	echo $pays_traite;
     
    	eval('$array_pays=(' . $pays_traite . ');');
     
    	foreach ($array_pays as $id_pays )  {
    et sa me sort

    'au','nz','fr'
    Parse error: syntax error, unexpected ',' in /stats/stats.php(118) : eval()'d code on line 1

  5. #5
    Membre du Club
    Inscrit en
    février 2008
    Messages
    372
    Détails du profil
    Informations forums :
    Inscription : février 2008
    Messages : 372
    Points : 48
    Points
    48

    Par défaut

    ils arrivent par un $_GET

  6. #6
    Membre du Club
    Inscrit en
    février 2008
    Messages
    372
    Détails du profil
    Informations forums :
    Inscription : février 2008
    Messages : 372
    Points : 48
    Points
    48

    Par défaut

    Merci stealth35

    par contre après je fais comment avec mon

    foreach ($array_pays as $id_pays ) {

    là j'ai un peu de peine avec les tableaux

  7. #7
    Membre du Club
    Inscrit en
    février 2008
    Messages
    372
    Détails du profil
    Informations forums :
    Inscription : février 2008
    Messages : 372
    Points : 48
    Points
    48

    Par défaut

    Merci pour tous j'ai trouver

    j'ai fait comme sa:
    Code :
    1
    2
    3
    4
    5
     
    $pays_traite = "'au','nz','fr'";
    preg_match_all('/\'(.*?)\',?/', $pays_traite, $matches);
    // print_r($matches[1]);
    	foreach ($matches[1] as $k => $id_pays )  {
    Merci encore de votre aide par contre comme je suis nul en tableau si quelqu'un pouvait m'expliqué le fonctionnement du :
    foreach ($matches[1] as $k => $id_pays )

    car je saisie pas tous Merci

  8. #8
    Modérateur

    Inscrit en
    septembre 2010
    Messages
    7 957
    Détails du profil
    Informations forums :
    Inscription : septembre 2010
    Messages : 7 957
    Points : 9 507
    Points
    9 507

    Par défaut

    Citation Envoyé par sinifer Voir le message
    Merci encore de votre aide par contre comme je suis nul en tableau si quelqu'un pouvait m'expliqué le fonctionnement du :
    foreach ($matches[1] as $k => $id_pays )

    car je saisie pas tous Merci
    il suffit d'aller sur la doc :
    http://fr.php.net/manual/fr/control-...es.foreach.php

  9. #9
    Modérateur
    Avatar de sabotage
    Homme Profil pro Vincent
    Inscrit en
    juillet 2005
    Messages
    19 821
    Détails du profil
    Informations personnelles :
    Nom : Homme Vincent

    Informations forums :
    Inscription : juillet 2005
    Messages : 19 821
    Points : 26 099
    Points
    26 099

    Par défaut

    Pour mon eval, j'ai oublié le array tout betement :
    Code :
    eval('$array_pays=array(' . $pays_traite . ');');
    mais traiter un eval avec des données recues par GET, je suis contre.

+ Répondre à la discussion
Cette discussion est résolue.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •