IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Convertir une variable de type string avec du contenu d'un array en array


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 37
    Par défaut Convertir une variable de type string avec du contenu d'un array en array
    bonjnour

    ces lignes fonctionnent :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $listQuery = get_posts(array(tag=>array(nom_tag1,nom_tag2), posts_per_page => 100));
    $listQuery = get_posts(array(tag=>nom_tag1, posts_per_page => 100));
    je souhaite faire évoluer en récupérant d'une base une variable la même valeur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    array(tag=>array(nom_tag1,nom_tag2), posts_per_page => 100)
    array(tag=>nom_tag1, posts_per_page => 100))
    ou bien je choisirai la meilleur formule...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    tag=>array(nom_tag1,nom_tag2), posts_per_page => 100
    tag=>nom_tag1, posts_per_page => 100)
    pour faire à la fin
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $listQuery = get_posts(array(   $mavariable   ));
    Le problème c'est que je la récupère en STRING et je n'arrive pas à la transformer en tableau qui peut contenir d'autre tableau.

    Alors évidemment si la chaine est la même alors je pourrai fabriquer mon tableau avec des explodes et des boucles ... mais la chaine peut être différente. Un chose qui est sure c'est que si je fais un copier/coller de la valeur de cette chaine dans ma fonction "get_posts" tout marche mais si je récupère par une variable intermédiaire ça ne marche pas.

    Pouvez-vous m'aider s'il vous plaît?
    Bonne journée

  2. #2
    Membre Expert
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Par défaut
    S'il s'agit de transformer seulement le cas que tu présentes, ce qui suit peut aller. Par contre pour d'autres cas il faudra revoir.

    L'idée est de transformer ta chaîne en chaîne json puis de la décoder afin d'en faire un array.

    Par contre il faut que dans ta chaîne, tous les éléments alphanumériques soient entourés de ".

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
    $b = '"tag"=>array("nom_tag1","nom_tag2"), "posts_per_page" => 100';
    $r = '{'.str_replace(array("=>","array(",")"),array(":","[","]"),$b).'}';
    $d = json_decode($r,true);
    print $d['tag'][0]."<br/>";
    print $d['tag'][1]."<br/>";
    print $d['posts_per_page']."<br/>";

    PS : si cela se trouve il doit bien exister une fonction php ad-hoc.
    PS2 : pourquoi vouloir faire comme tu veux faire ? Est-ce qu'il n'y a pas une autre manière de résoudre ton problème sans passer par ça ?

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $listQuery = get_posts(array(tag=>array(nom_tag1,nom_tag2), posts_per_page => 100));
    Ton code ne ressemble pas à du PHP...
    • Soit c'est un nom d'index (d'array), et ça s'écrit avec des '...'
    • Soit c'est une variable PHP, et ça s'écrit avec un $.

    Là, ce n'est pas clair...

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $listQuery = get_posts(array('tag'=>array($nom_tag1, $nom_tag2), 'posts_per_page' => 100));
    Pour voir ce que ça contient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var_dump( $listQuery );
    Bref : CLARIFIE ta demande.

    @badaze
    Si tu as compris : bravo !
    Moi, non. (je n'ai même pas compris ta réponse... )
    Dernière modification par Invité ; 12/08/2018 à 20h18.

  4. #4
    Membre Expert
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Par défaut
    @jreaux62
    Il a une chaîne de caractères qui correspond à la structure d’un array. Mais comme c’est dans une chaîne, quand il affecte la valeur dans une variable il a une chaîne et non pas un tableau.
    Il veut donc pouvoir convertir cette chaîne en array. D’où la transformation en chaîne json puis décodage pour en faire un tableau.
    Pourquoi faire comme ça car il y a sûrement des méthodes moins tordues pour arriver au même résultat ? Comme on dit où je suis actuellement Non lo so.

    Après réflexion, le plus simple est de constituer directement une chaîne json qu'il suffit ensuite de décoder comme indiqué dans mon premier message. Ce sera aussi facile que de le faire avec des array !


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    {"tag":["nom_tag1","nom_tag2"], "posts_per_page" : 100}

Discussions similaires

  1. Problème bizarre avec une variable de type string
    Par beegees dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 10/06/2009, 11h34
  2. problème avec une variable de type string
    Par marsupilami34 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 14/06/2007, 14h53
  3. convertir une variable de type String en Number
    Par lilbrother974 dans le forum Flash
    Réponses: 13
    Dernier message: 06/09/2006, 08h28
  4. Ajouter a une variable de type string, un entier
    Par Little-Freud dans le forum SL & STL
    Réponses: 12
    Dernier message: 05/03/2005, 19h33
  5. Convertir une date en type string
    Par ziboux dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 29/10/2003, 10h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo