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 :

Parcourir un array à 5 dimensions


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2006
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2006
    Messages : 985
    Points : 460
    Points
    460
    Par défaut Parcourir un array à 5 dimensions
    Bonjour,
    J'ai ce tableau en fait qui est mon panier d'un site boutique.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $_SESSION['panier']=array();
    $_SESSION['panier']['idProduit'] = array();
    $_SESSION['panier']['libelleProduit'] = array();
    $_SESSION['panier']['qteProduit'] = array();
    $_SESSION['panier']['prixProduit'] = array();
    $_SESSION['panier']['verrou'] = false;
    Après ajout d'éléments à $_SESSION['panier'], print_r me retourne 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
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    Array
    (
        [idProduit] => Array
            (
                [0] => 3
                [1] => 2
            )
     
        [libelleProduit] => Array
            (
                [0] => Jabon
                [1] => bonbon
            )
     
        [qteProduit] => Array
            (
                [0] => 2
                [1] => 5
            )
     
        [prixProduit] => Array
            (
                [0] => 1000
                [1] => 500
            )
     
        [verrou] => 
    )
    Comment parcourrir cet array de manière à avoir sur chaque ligne ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <ul>
    <li>idProduit - libelleProduit - qteProduit </li>
    //Autres lignes de resultat...
    </ul>
    Merci d'avance...

  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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    foreach($_SESSION['panier']['idProduit'] as $key=>$value) {
        echo $key . '-'  . $_SESSION['panier']['libelleProduit'][$key] . '-' . $_SESSION['panier']['qteProduit'][$key];
    }
    ton tableau n'a que deux dimensions :

    idProduit libelleProduit qteProduit

    0

    1

    2

    ...

    x
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    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
    C'est un problème qu'on voit revenir assez souvent.

    Ton tableau de session est monté à l'envers ce qui le rend chiant à parcourir.
    Comme il est fait là, $_SESSION['panier'] est une structure de données, dont les données sont des listes, alors que logiquement il serait plus simple que ce soit une liste de structures de données.

    Pour illustrer le propos pas clair (désolé ), il devrait ressembler à quelque chose comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Array( 
        [0] => Array(
            [idProduit] => 1
            [libelleProduit] => patates
        )
        [1] => Array(
            [idProduit] => 2
            [libelleProduit] => bananes
        )
    )
    Je te laisse réfléchir à la manière de monter le tableau, c'est pas plus compliqué et ça te simplifiera grandement la vie pour le parcourir ensuite.
    Pourfendeur de singletons en croisade

  4. #4
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    Plutot comme ca alors :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    foreach($_SESSION['panier']['idProduit'] as $key=>$value) {
        echo $value . '-'  . $_SESSION['panier']['libelleProduit'][$key] . '-' . $_SESSION['panier']['qteProduit'][$key];
    }

  5. #5
    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
    Heu oui effectivement

    Sinon je rejoinds Petibidon sur la structure du tableau.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2006
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2006
    Messages : 985
    Points : 460
    Points
    460
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    foreach($_SESSION['panier']['idProduit'] as $key=>$value) {
        echo $key . '-'  . $_SESSION['panier']['libelleProduit'][$key] . '-' . $_SESSION['panier']['qteProduit'][$key];
    }
    Exactement merci beaucoup

    Citation Envoyé par sabotage Voir le message
    ton tableau n'a que deux dimensions :
    Là je vois flou. Je pensais cinq dimensions car pour chaque entrée on a besoin de id, libellé, quantité, prix et verrou.

    Merci pour votre éclaircissement.

    Cordialement.

  7. #7
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2006
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2006
    Messages : 985
    Points : 460
    Points
    460
    Par défaut
    Citation Envoyé par Madfrix Voir le message
    Plutot comme ca alors :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    foreach($_SESSION['panier']['idProduit'] as $key=>$value) {
        echo $value . '-'  . $_SESSION['panier']['libelleProduit'][$key] . '-' . $_SESSION['panier']['qteProduit'][$key];
    }
    Yes. Merci

  8. #8
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2006
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2006
    Messages : 985
    Points : 460
    Points
    460
    Par défaut
    Citation Envoyé par Petibidon Voir le message
    C'est un problème qu'on voit revenir assez souvent.

    Ton tableau de session est monté à l'envers ce qui le rend chiant à parcourir.
    Comme il est fait là, $_SESSION['panier'] est une structure de données, dont les données sont des listes, alors que logiquement il serait plus simple que ce soit une liste de structures de données.

    Pour illustrer le propos pas clair (désolé ), il devrait ressembler à quelque chose comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Array( 
        [0] => Array(
            [idProduit] => 1
            [libelleProduit] => patates
        )
        [1] => Array(
            [idProduit] => 2
            [libelleProduit] => bananes
        )
    )
    Je te laisse réfléchir à la manière de monter le tableau, c'est pas plus compliqué et ça te simplifiera grandement la vie pour le parcourir ensuite.
    Je vais m'y pencher. Merci

  9. #9
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    Citation Envoyé par okoweb Voir le message
    Là je vois flou. Je pensais cinq dimensions car pour chaque entrée on a besoin de id, libellé, quantité, prix et verrou.
    non tu as bien 2 dimensions, pour t'en convaincre testes ceci :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    echo '<pre>';
    print_r($_SESSION['panier']);
    echo '<pre>';

    Tu obtiens 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
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    Array
    (
        [idProduit] => Array
            (
                [0] => 3
                [1] => 2
            )
     
        [libelleProduit] => Array
            (
                [0] => jambon
                [1] => bonbon
            )
     
        [qteProduit] => Array
            (
                [0] => 2
                [1] => 5
            )
     
        [prixProduit] => Array
            (
                [0] => 1000
                [1] => 500
            )
     
        [verrou] => 
    )
    ce qui représente bien un tableau de tableaux donc 2 dimensions même si j'explique mal

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

Discussions similaires

  1. 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
  2. Parcourir un array()
    Par Katachana dans le forum Langage
    Réponses: 8
    Dernier message: 21/08/2008, 14h00
  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