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 plusieurs tableaux dans une boucle foreach


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2012
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 284
    Points : 132
    Points
    132
    Par défaut Parcourir plusieurs tableaux dans une boucle foreach
    Bonjour,

    Plus haut je parcours un fichier CSV, avec mes colonnes je créée 2 tableaux simples :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    foreach ($Asset as $key => $value)
    {
    	$Brands[] = $Asset[$key][4];
    	$Models[] = $Asset[$key][5];
    }
    Comment faire pour parcourir mes 2 tableaux dans une boucle foreach et faire une mise en page html ?

    Avec un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $Liste_tableaux = array($Brands(),$Models());
     
    foreach ($Liste_tableaux as $Tableau=> $value)
    {
     
       foreach ($Tableau as $key => $value)
       {
          echo "<tr><td>".$key ."</td><td>".$value."</td></tr>";
        }
     
    }
    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
    Déjà ta première boucle c'est plus simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    foreach ($Asset as $value)
    {
    	$Brands[] = $value[4];
    	$Models[] = $value[5];
    }
    Dans le deuxième, je n'ai pas bien compris ce que tu cherchais a afficher ; mais ça ne sert à rien de recoller des éléments que tu viens de séparer.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    foreach ($Asset as $value)
    {
       echo "<tr><td>".$value[4] ."</td><td>".$value[5]."</td></tr>";
    }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre habitué
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2012
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 284
    Points : 132
    Points
    132
    Par défaut
    Hello Sabotage

    Oui pour la première tu as raison les clés pas besoin

    Je crois que j’essaye encore de faire un truc compliqué alors que c'est simple

    On va commencer autrement

    J'ai un tableau principal avec différentes colonnes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    foreach ($Asset as $value)
    {
       echo "<tr><td>".$value[4] ."</td><td>".$value[5]."</td></tr>";
    }
    Les colonnes qui m’intéressent sont la 4 et 5.

    4 va contenir les marques : ex :

    DELL
    IBM
    HP
    IBM
    IBM

    5 va contenir les modèles : ex :

    PE2950
    X3500
    BL600
    X3600
    X3600

    je souhaiterais donc savoir, combien de fois apparaissent les différentes marques dans ma colonne et créer un tableau html qui donnerait :

    Ex : Tableau html 1 Marques :

    DELL 1
    IBM 3
    HP 1

    je souhaiterais donc savoir, combien de fois apparaissent les différents modeles dans ma colonne et créer un tableau html qui donnerait :

    Ex : Tableau html 2 Modeles :

    PE2950 1
    X3500 1
    BL600 1
    X3600 2

    Merci d'avance.

  4. #4
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    350
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 350
    Points : 507
    Points
    507
    Par défaut
    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
    $brands = array();
    $models = array();
    foreach ($asset as $value)
    {
        if (!isset($brands[$value[4]])){
             $brands[$value[4]] = 0;
        }
     
        $brands[$value[4]] += 1;
     
        if (!isset($models[$value[5]])){
             $models[$value[5]] = 0;
        }
        $models[$value[5]] += 1;
    }
    Tu auras 2 tableaux indexé sur tes libelles avec le nombre
    Marcuscircus : La seule différence entre un rêve et sa réalisation, c'est l'envie

  5. #5
    Membre habitué
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2012
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 284
    Points : 132
    Points
    132
    Par défaut
    Hello Marcus, merci pour ta réponse, mais au final ça revient au même que si j'utilise mon code précédent :

    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
    foreach ($Asset as $key => $value)
    {
    	$Brands[] = $Asset[$key][4];
    	$Models[] = $Asset[$key][5];
    }
     
    $Stats_Brands = array_count_values($Brands);
    $Stats_Models = array_count_values($Models);	
     
    foreach ($Stats_Brands as $Brand => $value) 
    {
    	$count++;	
    	echo "<tr><td>".$count."</td><td>".$Brand."</td><td>".$value."</td></tr>";
    }
     
    foreach ($Stats_Models as $Model => $value) 
    {
    	$count++;	
    	echo "<tr><td>".$count."</td><td>".$Model."</td><td>".$value."</td></tr>";
    }
    Merci pour votre aide

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    => array_count_values ()

  7. #7
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    350
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 350
    Points : 507
    Points
    507
    Par défaut
    => array_count_values ()
    le problème du array_count_values c'est que si ces autres champs contiennes les mots ca va les compter aussi...
    De plus il n'aura pas seulement les valeurs du 4 et 5
    Marcuscircus : La seule différence entre un rêve et sa réalisation, c'est l'envie

  8. #8
    Membre habitué
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2012
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 284
    Points : 132
    Points
    132
    Par défaut
    bonjour,

    Merci pour vos réponses mais j'utilise deja array count value dans mon code.

    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
     
    foreach ($Asset as $key => $value)
    {
    	$Brands[] = $Asset[$key][4];
    	$Models[] = $Asset[$key][5];
    }
     
    $Stats_Brands = array_count_values($Brands);
    $Stats_Models = array_count_values($Models);	
     
    foreach ($Stats_Brands as $Brand => $value) 
    {
    	$count++;	
    	echo "<tr><td>".$count."</td><td>".$Brand."</td><td>".$value."</td></tr>";
    }
     
    foreach ($Stats_Models as $Model => $value) 
    {
    	$count++;	
    	echo "<tr><td>".$count."</td><td>".$Model."</td><td>".$value."</td></tr>";
    }
    C'est juste que si j'ai 10 tableaux à parcourir, je ne veux pas faire 10 boucles foreach ...

    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
     
    //Parcours Tableau 1
    foreach ($Stats_Brands as $Brand => $value) 
    {
    	$count++;	
    	echo "<tr><td>".$count."</td><td>".$Brand."</td><td>".$value."</td></tr>";
    }
     
    //Parcours Tableau 2
    foreach ($Stats_Models as $Model => $value) 
    {
    	$count++;	
    	echo "<tr><td>".$count."</td><td>".$Model."</td><td>".$value."</td></tr>";
    }
     
    //Parcours Tableau 3
    .....
     
    .....
     
    //Parcours Tableau 4
    Je ne sais pas si vous voyez ce que je veux dire.

    En une boucle je souhaiterais parcourir tableau 1,2,3, .....

    Merci d'avance.

  9. #9
    Membre éprouvé Avatar de Shuty
    Homme Profil pro
    Ingénieur en développement
    Inscrit en
    Octobre 2012
    Messages
    630
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur en développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2012
    Messages : 630
    Points : 1 174
    Points
    1 174
    Par défaut
    Tu peux faire un array_merge()

    http://php.net/manual/fr/function.array-merge.php
    Agence web Dim'Solution, créateur de solutions numériques
    Sites internet, ecommerce, logiciels, applications mobiles, référencement (SEO), plugin Prestashop, Magento, WordPress, Joomla!...

    Cours de trading gratuit | Envoyer des sms gratuitement | Envoyer des fax gratuitement | Plateforme de Fax à l'international

Discussions similaires

  1. Récupérer les données de 2 tableaux dans une boucle
    Par poleta77 dans le forum Langage
    Réponses: 6
    Dernier message: 21/12/2009, 15h41
  2. Récupérer les coordonnées de plusieurs DIV dans une boucle PHP
    Par renaud26 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 05/11/2009, 10h23
  3. [PHP 5.2] Implementer plusieurs fichiers dans une boucle
    Par Mugette dans le forum Langage
    Réponses: 5
    Dernier message: 17/08/2009, 18h44
  4. Réponses: 0
    Dernier message: 09/06/2009, 13h15
  5. declarer plusieurs JcheckBox dans une boucle
    Par 01211983 dans le forum Interfaces Graphiques en Java
    Réponses: 4
    Dernier message: 21/02/2008, 01h47

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