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 :

Problème de boucles


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2010
    Messages : 8
    Par défaut Problème de boucles
    Hello,
    Je souhaite afficher des produits dans leurs catégories respectives.

    J'ai deux variables:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $categories = Array (
    [0] => Array ( [id] => 1 [name] => Sushi )
    [1] => Array ( [id] => 2 [name] => Maki ) 
    ) 
    $products = Array ( 
    [0] => Array ( [id] => 5 [category] => 1 [name] => Thon) 
    [1] => Array ( [id] => 4 [category] => 1 [name] => Saumon) 
    [3] => Array ( [id] => 7 [category] => 2 [name] => Saumon)
    [4] => Array ( [id] => 8 [category] => 2 [name] => Thon)
    )
    J'aimerai savoir quelle est la façon la plus élégante pour afficher mes données de cette façon :
    Sushi
    -Thon
    -Saumon
    Maki
    -Thon
    -Saumon

    J'ai essayé ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    foreach($categories as $category){
    echo $category['name'];
    foreach($products as $product){
    if($product['category'] == $category['id']){
    echo $product['name'];
    }
    }
    }
    Ça fonctionne, mais ça ne me semble pas très optimisé. Avez-vous une meilleure solution ?

    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
    Par défaut
    C'est plutot la structure initiale qu'il faudrait retravailler.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Août 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2010
    Messages : 8
    Par défaut
    Peux-tu me donner un exemple ?

  4. #4
    Membre Expert
    Avatar de transgohan
    Homme Profil pro
    Développeur Temps réel Embarqué
    Inscrit en
    Janvier 2011
    Messages
    3 149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Temps réel Embarqué

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 149
    Par défaut
    Il faudrait un seul tableau avec tous les éléments déjà ordonnés.
    Il y a plusieurs structures possibles partant de ce principe. En voici deux :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $liste = Array (
    [0] => Array ( [id_cat] => 1 [name_cat] => Sushi [id] => 5 [name] => Thon )
    [0] => Array ( [id_cat] => 1 [name_cat] => Sushi [id] => 4 [name] => Saumon)
    [0] => Array ( [id_cat] => 2 [name_cat] => Maki [id] => 7 [name] => Saumon)
    [0] => Array ( [id_cat] => 2 [name_cat] => Maki [id] => 8 [name] => Thon )
    )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $liste = Array (
    [0] => Array ( [id] => 1 [name] => Sushi [type] => cat)
    [1] => Array( [id] => 5 [name] => Thon [type] => element)
    [2] => Array ( [id] => 4 [name] => Saumon [type] => element)
    [3] => Array ( [id] => 2 [name] => Maki [type] => cat)
    [4] => Array( [id] => 7 [name] => Saumon [type] => element)
    [5] => Array ( [id] => 8 [name] => Thon [type] => element )
    )
    Un seul tableau ordonné et de quoi différencier chaque élément.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Août 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2010
    Messages : 8
    Par défaut
    Merci, j'ai compris le principe. Je vais voir comment je peux mettre ça en pratique.

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

Discussions similaires

  1. Problème de boucles imbriquées
    Par Gnux dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 09/12/2005, 20h26
  2. [Tableaux] Problème avec boucle
    Par MYster dans le forum Langage
    Réponses: 6
    Dernier message: 11/11/2005, 18h39
  3. Problème de boucle
    Par TheUltimaSephiroth dans le forum C
    Réponses: 8
    Dernier message: 10/10/2005, 13h58
  4. Problème de boucle
    Par Louis-Guillaume Morand dans le forum Langage SQL
    Réponses: 3
    Dernier message: 25/09/2005, 09h10
  5. Problème de boucle
    Par basclln dans le forum C++
    Réponses: 19
    Dernier message: 02/04/2005, 09h13

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