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 :

Array 2 dimensions


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    107
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2006
    Messages : 107
    Points : 70
    Points
    70
    Par défaut Array 2 dimensions
    Bonjour,

    je souhaiterais faire un array d'un array... le code d'origine lorsque je fait un print_r de mon $rows est:

    "Array
    (
    [0] => Array
    (
    [commande_id] => 1
    [pack_id] => 1
    [libelle] => Alimentation 128Mo
    [etat] => 2
    [SAV] => 1
    [produit_a_renvoyer] => 1
    [actif] => 0
    )

    [1] => Array
    (
    [commande_id] => 1
    [pack_id] => 1
    [libelle] => boitier
    [etat] => 2
    [SAV] => 1
    [produit_a_renvoyer] => 1
    [actif] => 0
    )

    [2] => Array
    (
    [commande_id] => 1
    [pack_id] => 1
    [libelle] => Carte mère type 1
    [etat] => 2
    [SAV] => 1
    [produit_a_renvoyer] => 1
    [actif] => 0
    )

    [3] => Array
    (
    [commande_id] => 1
    [pack_id] => 1
    [libelle] => pack vis
    [etat] => 2
    [SAV] => 1
    [produit_a_renvoyer] => 1
    [actif] => 0
    )

    [4] => Array
    (
    [commande_id] => 1
    [pack_id] => 1
    [libelle] => CD lancement
    [etat] => 2
    [SAV] => 1
    [produit_a_renvoyer] => 1
    [actif] => 0
    )

    [5] => Array
    (
    [commande_id] => 1
    [pack_id] => 2
    [libelle] => Alim 512Mo
    [etat] => 2
    [SAV] => 0
    [produit_a_renvoyer] => 0
    [actif] => 1
    )

    [6] => Array
    (
    [commande_id] => 1
    [pack_id] => 2
    [libelle] => Boitier
    [etat] => 2
    [SAV] => 0
    [produit_a_renvoyer] => 0
    [actif] => 1
    )

    [7] => Array
    (
    [commande_id] => 1
    [pack_id] => 2
    [libelle] => pack vis
    [etat] => 2
    [SAV] => 0
    [produit_a_renvoyer] => 0
    [actif] => 1
    )
    [8] => Array
    (
    [commande_id] => 1
    [pack_id] => 2
    [libelle] => CD lancement
    [etat] => 3
    [SAV] => 0
    [produit_a_renvoyer] => 0
    [actif] => 1
    )
    )
    "
    Hors je souhaiterais :
    Array
    (
    [1] => Array
    (
    [1] => Array
    (
    [0] => Array
    (
    [commande_id] => 1
    [pack_id] => 1
    [libelle] => Alim 128Mo
    [etat] => 2
    [SAV] => 1
    [produit_a_renvoyer] => 1
    [actif] => 0
    )

    [1] => Array
    (
    [commande_id] => 1
    [pack_id] => 1
    [libelle] => boitier
    [etat] => 2
    [SAV] => 1
    [produit_a_renvoyer] => 1
    [actif] => 0
    )

    [2] => Array
    (
    [commande_id] => 1
    [pack_id] => 1
    [libelle] => carte mère Type 1
    [etat] => 2
    [SAV] => 1
    [produit_a_renvoyer] => 1
    [actif] => 0
    )

    [3] => Array
    (
    [commande_id] => 1
    [pack_id] => 1
    [libelle] => pack vis
    [etat] => 2
    [SAV] => 1
    [produit_a_renvoyer] => 1
    [actif] => 0
    )

    [4] => Array
    (
    [commande_id] => 1
    [pack_id] => 1
    [libelle] => CD lancement
    [etat] => 2
    [SAV] => 1
    [produit_a_renvoyer] => 1
    [actif] => 0
    )

    )
    [2] => Array
    (
    [0] => Array
    (
    [commande_id] => 1
    [pack_id] => 2
    [libelle] => Alim 512Mo
    [etat] => 2
    [SAV] => 0
    [produit_a_renvoyer] => 0
    [actif] => 1
    )

    [1] => Array
    (
    [commande_id] => 1
    [pack_id] => 2
    [libelle] => Boitier
    [etat] => 2
    [SAV] => 0
    [produit_a_renvoyer] => 0
    [actif] => 1
    )

    [2] => Array
    (
    [commande_id] => 1
    [pack_id] => 2
    [libelle] => pack vis
    [etat] => 2
    [SAV] => 0
    [produit_a_renvoyer] => 0
    [actif] => 1
    )

    [3] => Array
    (
    [commande_id] => 1
    [pack_id] => 2
    [libelle] => CD lancement
    [etat] => 3
    [SAV] => 0
    [produit_a_renvoyer] => 0
    [actif] => 1
    )
    )

    )

    )
    j'ai essayé le code suivant :

    $pack = array($row['commande_id'] => array($row['pack_id'] =>
    $rows));
    fonction renvoyant le fameux $rows :
    function ListeproduitsDansPack(){

    $query = "SELECT commande_id, commande.pack_id, libelle, etat, SAV, produit_a_renvoyer,actif
    FROM sav, pack, commande
    WHERE pack.stock_id = sav.stock_id
    AND pack.pack_id = commande.pack_id
    AND pack.pack_id IS NOT NULL
    AND commande.commande_id = '1'
    ORDER BY sav.stock_id";
    $stmt = PdoSql::getInstance()->prepare($query);
    $stmt->execute();
    $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
    return $rows;
    }
    Je tourne en rond depuis 2 jours, je n'arrive pas à faire en sorte que mon $row['pack_id'] soit l'index du second array

    je vous remercie par avance pour l'aide apportée.

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    grace au FETCH_GROUP

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function ListeproduitsDansPack(){
     
    $query = "SELECT commande.pack_id, commande_id, commande.pack_id, libelle, etat, SAV, produit_a_renvoyer,actif
    FROM sav, pack, commande
    WHERE pack.stock_id = sav.stock_id
    AND pack.pack_id = commande.pack_id
    AND pack.pack_id IS NOT NULL
    AND commande.commande_id = '1'
    ORDER BY sav.stock_id";
    $stmt = PdoSql::getInstance()->prepare($query);
    $stmt->execute();
    $rows = $stmt->fetchAll(PDO::FETCH_ASSOC | PDO::FETCH_GROUP);
    return $rows;
    }

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    107
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2006
    Messages : 107
    Points : 70
    Points
    70
    Par défaut
    ça ne change pas l'incrémentation de l'array.. est-ce qu'il faut changer du coup quelque chose dans la requete sql ? ajouter un group by du coup ?

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    Citation Envoyé par Riwalenn Voir le message
    ça ne change pas l'incrémentation de l'array.. est-ce qu'il faut changer du coup quelque chose dans la requete sql ? ajouter un group by du coup ?
    si tu regardes bien il va les grouper par l'index de commande.pack_id, c'est que tu veux non ?

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    107
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2006
    Messages : 107
    Points : 70
    Points
    70
    Par défaut
    effectivement le code fonctionne avec mon tableau ^^ j'ai dû faire une mauvaise manipulation tout à l'heure bizarre

    merci à toi ça va grandement m'avancer.

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

Discussions similaires

  1. Sort d'un Array à plusieurs dimensions
    Par Phenol dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 04/07/2009, 19h06
  2. Problème avec fonction et array à 2 dimensions
    Par wrm8787 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 13/02/2009, 16h24
  3. Méthode push dans un Array à plusieurs dimensions
    Par thibane dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 02/04/2008, 10h42
  4. Réponses: 1
    Dernier message: 21/09/2007, 14h42
  5. [C#] Tableau et Array 2 dimension
    Par appwnet dans le forum Windows Forms
    Réponses: 5
    Dernier message: 22/10/2006, 14h46

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