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 :

Affichage groupée du contenu d'un tableau


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2019
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Affichage groupée du contenu d'un tableau
    Bonjour. Je suis débutant en php et j'ai fais des recherches sur le sujet avant de poster, mais je n'ai pas trouvé de solutions correctes pour mon cas.

    Je souhaite afficher les données d'un tableau php regroupées par catégories (Nom, Prénom etc...). J'ai trouvé des solutions permettant d'afficher le tableau, mais je n'arrive pas à les regrouper... Les différentes solutions sur internet que j'ai trouvé sur ce site sont différentes (Ou sinon je n'arrive pas à les comprendre car je suis encore tout nouveau...). J'espère donc ne pas faire de doublons...

    Donc voilà mon code pour mon tableau

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $data = array(
         array("Nom"=>"Garza","Prenom"=>"Forrest","Email"=>"eleifend@ligulaedu","Taille"=>"185","Poids"=>"65"),
         array("Nom"=>"Tanner","Prenom"=>"Orla","Email"=>"adipiscing@vitaecouk","Taille"=>"180","Poids"=>"73"),
         array("Nom"=>"Griffith","Prenom"=>"Susan","Email"=>"condimentum@tristiqueca","Taille"=>"172","Poids"=>"75"),
         array("Nom"=>"Wilkinson","Prenom"=>"Carla","Email"=>"tinciduntaliquamarcu@utmolestieca","Taille"=>"178","Poids"=>"71"),
         array("Nom"=>"Kirkland","Prenom"=>"Vladimir","Email"=>"Donec@egettinciduntduiorg","Taille"=>"178","Poids"=>"73"),
         array("Nom"=>"Holloway","Prenom"=>"Joy","Email"=>"enim@Nullamca","Taille"=>"191","Poids"=>"67"),
         array("Nom"=>"Soto","Prenom"=>"Cleo","Email"=>"posuereatvelit@Incondimentumca","Taille"=>"167","Poids"=>"70"),
    );
    J'aimerais donc les afficher, mais triés par catégories : Nom, Prénom, Email, Taille, Poids...

    J'ai fais ce code pour afficher le contenu, mais je ne sais pas comment les regrouper.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    echo "<pre>";
    print_r($data);
    echo "</pre>";
    Voilà, j'espère que ce topic n'existe pas déjà, et je vous remercie d'avance pour votre aide.
    Merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Citation Envoyé par _Louis_ Voir le message
    ...mais triés par catégories...
    Montre-nous le résultats que tu veux obtenir.

    • Tu veux créer plusieurs array ? ($array_nom, $array_prenom,...) ?
    • Tu veux faire un affichage dans une <table> ?
    • ... ?

    Ce n'est pas clair.

    Pour l'affichage dans une <table>, voici une solution :
    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
    36
    37
    38
    39
    40
    41
    42
    43
    <?php
    // -----------------
    $data = array(
         array("Nom"=>"Garza","Prenom"=>"Forrest","Email"=>"eleifend@ligulaedu","Taille"=>"185","Poids"=>"65"),
         array("Nom"=>"Tanner","Prenom"=>"Orla","Email"=>"adipiscing@vitaecouk","Taille"=>"180","Poids"=>"73"),
         array("Nom"=>"Griffith","Prenom"=>"Susan","Email"=>"condimentum@tristiqueca","Taille"=>"172","Poids"=>"75"),
         array("Nom"=>"Wilkinson","Prenom"=>"Carla","Email"=>"tinciduntaliquamarcu@utmolestieca","Taille"=>"178","Poids"=>"71"),
         array("Nom"=>"Kirkland","Prenom"=>"Vladimir","Email"=>"Donec@egettinciduntduiorg","Taille"=>"178","Poids"=>"73"),
         array("Nom"=>"Holloway","Prenom"=>"Joy","Email"=>"enim@Nullamca","Taille"=>"191","Poids"=>"67"),
         array("Nom"=>"Soto","Prenom"=>"Cleo","Email"=>"posuereatvelit@Incondimentumca","Taille"=>"167","Poids"=>"70"),
    );
    // -----------------
    // lignes du tableau
    $t_body = '';
    foreach( $data as $perso )
    {
    	$t_body .= '<tr>'."\n"; // "\n" : passage à la ligne dans le code (pour plus de clarté)
    	foreach( $perso as $val )
    	{
    		$t_body .= '<td>'.$val.'</td>'."\n";
    	}
    	$t_body .= '</tr>'."\n";
    }
    // -----------------
    // entete du tableau
    $data_entete = array_keys($data[0]); // on prend les clés de la 1ere ligne
    $t_head = '<tr>'."\n";
    foreach( $data_entete as $titre )
    {
    	$t_head .= '<th>'.$titre.'</th>'."\n";
    }
    $t_head .= '</tr>'."\n";
    // -----------------
    // Affichage
    ?>
    <table>
    <thead>
    <?php echo $t_head; ?>
    </thead>
    <tbody>
    <?php echo $t_body; ?>
    </body>
    </table>
    Dernière modification par Invité ; 09/02/2019 à 12h39.

  3. #3
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    pour trier tes données en php, tu peux faire très court en utilisant le nouveau comparateur spaceship <=>.
    Pour trier par Nom, Prenom, Email, Taille, Poids (croissant pour tous), cela se résume à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    usort($data, function($x, $y) {
        return $x['Nom'] <=> $y['Nom'] ?: $x['Prenom'] <=> $y['Prenom'] ?: $x['Email'] <=> $y['Email'] ?: $x['Taille'] <=> $y['Taille'] ?: $x['Poids'] <=> $y['Poids'];
    });
    ça c'est pour plus tard quand tu ne seras plus jeune padawan

  4. #4
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2019
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    Merci beaucoup ! Ton code fonctionne parfaitement jreaux62 !
    Merci aussi rawsrc !
    Je vais me pencher sur vos codes pour les comprendres !

    Merci beaucoup à vous !
    Bonne journée

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

Discussions similaires

  1. [XL-2010] Affichage d'un contenu d'une cellule dans un tableau Userform
    Par Matrixmax dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 27/12/2012, 17h56
  2. Problème avec affichage contenu d'un tableau
    Par demcoul dans le forum Collection et Stream
    Réponses: 10
    Dernier message: 08/08/2008, 10h08
  3. Pb d'affichage du contenu d'un tableau.
    Par sandball22 dans le forum C
    Réponses: 17
    Dernier message: 11/05/2007, 17h33
  4. [debutant]affichage du contenu d'un tableau dans du JTextField
    Par mehdi_swatch dans le forum Composants
    Réponses: 2
    Dernier message: 30/11/2006, 11h16

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