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 :

Creer un 3ème tableau avec 2 tableaux


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    218
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 218
    Points : 111
    Points
    111
    Par défaut Creer un 3ème tableau avec 2 tableaux
    Bonsoir,

    j'ai deux tableaux,
    un qui contient des nombres
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while($row = mysql_fetch_array($result))
    {
      $donnees[] = intval($row['part_marche']);
    }

    et l'autre qui contient du texte
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while($row = mysql_fetch_array($result2))
    {
      $Xlabel[] = ($row['GSP_nom']);
    }


    et j'aimerai creer un troisième tableau sous cette forme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [1] => MonNombre1,  "MonTexte1"
    [2] => MonNombre2, "MonTexte2"
    J'ai regardé les fonction merge et array_combine, mais je ne pense pas que cela réponde à mon besoin.

    Merci de votre aide.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    La forme de tableau que tu souhaites n'existe pas.

    Ca peut etre plutot
    [1] => array("nombre"=>MonNombre1, "texte"=>"MonTexte1")

    Tu veux conserver les deux tableaux séparés ou tu peux construire directement le tableau final ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    218
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 218
    Points : 111
    Points
    111
    Par défaut
    je peux construire directement le tableau final, mais pour que ca marche il faut que le format soit celui là.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $pie->set_values(
       array(
    new pie_value(100, "label1"),
    new pie_value(250, "blabla"),
    new pie_value(300, "clavier"))
    );
    et dans mon tableau donnees[] j'ai toutes mes valeurs
    et dans mon tableau Xlabel[] j'ai tout les labels

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    218
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 218
    Points : 111
    Points
    111
    Par défaut
    et si je faisais un


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    foreach($donnees as $element):
      $d[] = new pie_value($donnees[i], $Xlabel[i]); 
    endforeach;
    sachant que le tableau données est de même dimension que le Xlabel.

    qu'en dite vous ?

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 625
    Points : 822
    Points
    822
    Par défaut
    Si tu es parti sur un tableau d'objets, tu n'es pas obligé de passer par 2 tableaux pour monter tes objets, il faut juste les prévoir en conséquence.

    genre par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $i = 0;
    while( $row = mysql_fetch_assoc( $result1 ){
        $monTableau[ $i++ ] = $row[ 'part_marche'];
    }
    ...
    $i = 0;
    while( $row = mysql_fetch_assoc( $result2 ){
        $monTableau[ $i++ ]->setLabel( $row['GSP_nom'] );
    }
    Sachant que peut-être que tu pourrais récupérer toutes tes infos en une seule requete via une jointure, ce qui serait beaucoup mieux.
    Pourfendeur de singletons en croisade

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    218
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 218
    Points : 111
    Points
    111
    Par défaut
    j'avoue ne pas avoir bien compris ta réponse, mes tableaux ne contiennent cependant pas d'objets

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $d[] = new pie_value(valeur1, "label1"); 
    $d[] = new pie_value(valeur2, "label2");
    et dans mon tableau Xlabel[] il y à tous les labels
    contrairement à mon tableau donnees[] qui contient que les valeurs.

    j'essaye de faire ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
       array(
       foreach($donnees as $element):
       $d[] = new pie_value($donnees[i], $Xlabel[i]); 
    	endforeach;
    );
    $pie->set_values( $d);
    );

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 625
    Points : 822
    Points
    822
    Par défaut
    Bon, je vais essayer d'expliquer l'idée, sachant que je m'étais planté dans le code proposé... Au temps pour moi

    Donc :
    1) tu fais une requete pour créer un tableau
    2) tu fais une seconde requete pour créer un second tableau
    3) tu crée un nouveau tableau d'objets à partir des tableaux définis dans 1) et 2)

    L'idée que je te proposais c'était d'adapter ta classe Pie_value pour pouvoir monter ton tableau final sans créer de tableaux intermédiaires.

    Dans le cas contraire, si tu gardes tes tableaux intermédiaires tu peux faire comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for( $i = 0 ; $i < count( $donnees ) ; $i++ ){
        $d[ $i ] = new Pie_value( $donnees[ $i ] , $Xlabel[ $i ] );
    }
    $pie->setValues( $d );
    Pourfendeur de singletons en croisade

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    218
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 218
    Points : 111
    Points
    111
    Par défaut
    Merci de ton aide précieuse, je ne peux pas pour l'instant modifier la classe. J'ai donc opté pour la deuxième solution et voila ce que j'obtiens.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    Array
    (
        [0] => pie_value Object
            (
                [value] => 5
                [label] => clavier
            )
     
        [1] => pie_value Object
            (
                [value] => 5
                [label] => tutu
            )
     
        [2] => pie_value Object
            (
                [value] => 4
                [label] => tata
            )
     
        [3] => pie_value Object
            (
                [value] => 1
                [label] => toto
            )
     
     
    )
    Malheureusement, la structure ne conviens pas, il faudrait que cela soit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Array(
        [0] => pie_value Object
            (
                [value] => 5, "clavier"
            )
     
        [1] => pie_value Object
            (
                [value] => 5, "tutu"
            )
     
       ...
    )

  9. #9
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Un truc approchant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $a1 = array('5', '8');
    $a2 = array('foo', 'bar');
     
    $result = array();
     
    foreach($a1 as $key=>$value)
        $result[] = sprintf('%d, %s', $value, $a2[$key]);
     
    print_r($result);
    Ceci dit, je trouve la structure obtenue précédemment (voir ci-dessous) beaucoup plus acceptable.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    Array
    (
        [0] => pie_value Object
            (
                [value] => 5
                [label] => clavier
            )
     
        [1] => pie_value Object
            (
                [value] => 5
                [label] => tutu
            )
     
        [2] => pie_value Object
            (
                [value] => 4
                [label] => tata
            )
     
        [3] => pie_value Object
            (
                [value] => 1
                [label] => toto
            )
     
     
    )
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

  10. #10
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Citation Envoyé par anxious Voir le message
    Malheureusement, la structure ne conviens pas, il faudrait que cela soit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Array(
        [0] => pie_value Object
            (
                [value] => 5, "clavier"
            )
    )
    Le problème c'est que, comme on te l'a déjà dit, cette structure ne correspond à rien en php.
    SI tes objets pie_value ont deux attributs value et label qui sont renseignés lors de la construction selon la structure new pie_value($value, $label), ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Array
    (
        [0] => pie_value Object
            (
                [value] => 5
                [label] => clavier
            )
     
        [1] => pie_value Object
            (
                [value] => 5
                [label] => tutu
            )
    )
    est le résultat affiché de ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    array(
    new pie_value(5, "clavier"),
    new pie_value(5, "tutu");
    désolée, mais on ne peut pas réparer quelque chose qui fonctionne...
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    218
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 218
    Points : 111
    Points
    111
    Par défaut
    d'accord, je vous remercie énormément de vous être penché sur mon problème, je vais voir comment je peux gerer ca avec les attributs

Discussions similaires

  1. [XL-2010] Générer un tableau avec plusieurs tableaux
    Par redflowers90 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 09/06/2015, 16h04
  2. creer sous liste tableau avec condition
    Par Isabella83 dans le forum Langage
    Réponses: 3
    Dernier message: 24/05/2012, 17h15
  3. Parcours tableau avec sous-tableaux
    Par Yann39 dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 23/06/2010, 17h23
  4. Réponses: 5
    Dernier message: 26/08/2006, 12h14
  5. [Tableaux] Tableau avec valeur conditionnelle
    Par alfigor dans le forum Langage
    Réponses: 5
    Dernier message: 25/04/2006, 14h22

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