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 :

[Tableaux] Lecture d'un tableau multi-dimension


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 105
    Par défaut [Tableaux] Lecture d'un tableau multi-dimension
    Bonjour,

    J'ai un tableau formé de la sorte:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $_SESSION['panier'][$data_post[5]][] = array('nom'=>$data_post[1],
        'couleur'=>$data_post[3],
        'taille'=>$data_post[2],
        'quantite'=>$_POST[$data_post[0]],
        'prix'=>$data_post[4]);
    [$_data_post[5]] étant les id des collection de produits.

    J'aimerai les prix des produits toutes colelction confondu comment je peux faire??

  2. #2
    Membre Expert Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 895
    Par défaut
    Si ton tableau n'a forcément qu'un autre tableau imbriqué maximum, il suffit d'utiliser 2 boucles : une pour lire le premier niveau, une pour lire le second niveau.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 105
    Par défaut
    Une double boucle du genre?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    for ($i=0; $i < count($_SESSION['panier']); $i++) {
         for ($j=0; $j < count($_SESSION['panier'][]); $j++) {
              echo $_SESSION['panier'][]['prix'];
         }
    }
    Mais je sais pas si j'ai le droit de mettre

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 105
    Par défaut
    Se serai peut être plus simple si je crée le tableau de la sorte:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $_SESSION['panier'][] = array('collection'=>$data[5]);
    $_SESSION['panier']['collection'][] = array('nom'=>$data[1],
         'couleur'=>$data[3],
         'taille'=>$data[2],
         'quantite'=>$_POST[$data[0]],
         'prix'=>$data[4]);
    Mais après je dois utiliser un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    unset($_SESSION['panier'][2]);
    Or avec ['colection'] je sais pas comment lui spécifié la ligne à effacer
    Estce juste ca (POur reprendre l'exemple de la ligne 2 ci-dessus)?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    unset($_SESSION['panier']['collection'][2]);

  5. #5
    Membre chevronné Avatar de SphynXz
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    439
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 439
    Par défaut
    en effet il te faut un permis spécial pour faire çà !

    non je déconne :p

    tu ne peux pas sélectionner toute les lignes d'une colonne en ne spécifiant que la colonne, ce serait compliquer à gérer.

    de plus, boucler sur un tableau se fait plus communément avec foreach plutôt que for

    foreach($tableau as $ligne)
    {
    echo $ligne;
    }

    ici, pour chaque ligne du tableau $tableau, foreach va insérer la valeur dans $ligne

    variante :

    foreach($tableau as $clé => $valeur)
    {
    echo "$clé = $valeur";
    }

    ici, ici, pour chaque ligne du tableau $tableau, foreach va insérer la valeur dans $valeur, et le nom de la clé dans $clé . C'est utie pour des tableau associatif


    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    foreach($_SESSION['panier'] as $articles)
    {
             foreach($articles as $propriété => $valeur)
             {
                   echo "$propriété = $valeur";
             }
    }

    tu peux mettre une condition pour n'afficher que le prix par exemple

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    foreach($_SESSION['panier'] as $articles)
    {
             foreach($articles as $propriété => $valeur)
             {
                   echo ($propriété == "prix")?"$propriété = $valeur";
             }
    }

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 105
    Par défaut
    Il n'y à pas une erreur dans

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    foreach($_SESSION['panier'] as $articles)
    {
             foreach($articles as $propriété => $valeur)
             {
                   echo ($propriété == "prix")?"$propriété = $valeur";
             }
    }
    Il y a une erreur pour lui rien ne s'affiche.

    Pour la 1er solution, j'ai essayer voir le résultat, il m'ecrit:

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 105
    Par défaut
    J'ai vu cette fonction qu ime ressort bien les éléments:
    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
    30
    31
    32
    33
    34
    35
     
    function afficher_tableau($tableau)  
        { 
        // on fait une boucle qui lit les éléments du tableau 
        foreach ($tableau as $cle=>$valeur)  
            { 
            // si l'un des éléments est lui même un tableau 
            // alors on applique la fonction à ce tableau 
            if(is_array($valeur))  
                { 
                // on affiche le nom de la clé et 
                // le début d'une liste pour 
                //  décaler le contenu vers la droite 
                echo $cle.' : <ul>';  
     
                // ici se réalise la récursivité 
                // c'est à dire qu'on applique la fonction 
                // à l'élément en cours car c'est lui aussi un tableau 
                afficher_tableau($valeur);  
     
                // on ferme la liste 
                echo '</ul>';  
                } 
     
            // si ce n'est pas un tableau 
            // alors on affiche le contenu de l'élément 
            else 
                { 
                echo $cle.' = '.$valeur.' <br>';   
                } 
            }  
        }  
     
     
    afficher_tableau($_SESSION['panier']);
    Mais toujours pareil comment récupérer que les prix??

Discussions similaires

  1. [Tableaux] recherche dans un tableau multi dimension
    Par kagura dans le forum Langage
    Réponses: 1
    Dernier message: 18/07/2007, 15h27
  2. [Tableaux] Tri d'un tableau multi-dimensions
    Par lodan dans le forum Langage
    Réponses: 6
    Dernier message: 05/12/2006, 11h08
  3. Réponses: 4
    Dernier message: 29/11/2006, 13h00
  4. Réponses: 3
    Dernier message: 06/10/2006, 16h46
  5. [Tableaux] Différence tableau multi dimension
    Par rdams dans le forum Langage
    Réponses: 3
    Dernier message: 20/04/2006, 12h34

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