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] Tableau à 2 dimensions [Fait]


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 29
    Points : 19
    Points
    19
    Par défaut [Tableaux] Tableau à 2 dimensions
    Voila je souhaitre créer un tableau à 2 dimensions de la sorte : $tab[categorie][type]
    L'indexation se fait de facon numerique à l'aide de compteurs

    Voici le code qui m'embete.. :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $i = 0;
    $list = array();
    while ($row_type = mysql_fetch_assoc($resulttype)){
    	$cat_name = get_cat_name($row_type['id_cat']);
    	$list[$i] = $cat_name;
    	$list[$i][0] = $row_type['type'];
    	$i++;
    }
    La boucle d'affichage au cas ou :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $i = 0;
    while ($list[$i]) {
    	echo ''.$list[$i].'';
    	echo ' '.$list[$i][0].'<br>';
    	$i++;
    	}
    Et ce que ça me sort :
    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
    Iatériel(s) I
    Matériel(s) M
    Ratériel(s) R
    Satériel(s) S
    Cogiciel(s) C
    Cogiciel(s) C
    Cogiciel(s) C
    Iogiciel(s) I
    Logiciel(s) L
    Logiciel(s) L
    Mogiciel(s) M
    Mogiciel(s) M
    Mogiciel(s) M
    Wogiciel(s) W
    Autres A
    Putres P
    Donc ce que j'en conclu c'est qu'il me traite le $list[$i][0] comme une chaine de caractères et remplace la premiere lettre de mon $list[$i]..
    J'ai tenté de mettre un $list[$i] = array(); apres le "$list[$i] = $cat_name;
    " mais rien n'y fait...

    Avez vous une idée ?

    Cordialement,

    LostMind.

  2. #2
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $list[$i] = $cat_name; 
    $list[$i][0] = $row_type['type'];
    A transformer en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if (!isset($list[$cat_name])) {
       $list[$cat_name] = array();
    }
    $list[$cat_name][] = $row_type['type'];

    Puis la boucle de parcours de tableau =>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    foreach($list as $categorie => $types) {
       foreach($types as $type) {
          echo $categorie.' '.$type.'<br>';
       }
    }

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 29
    Points : 19
    Points
    19
    Par défaut
    Merci beaucoup, ça va mieu là

    Par contre je bug sur le foreach ! J'ai beau regardé sur php.net j'arrête pas de m'embrouiller... si tu pouvais m'expliqer vite ça serais super

    Merci.

  4. #4
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Je peux pas t'expliquer mieux que http://php.net/manual/fr/control-structures.foreach.php

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 29
    Points : 19
    Points
    19
    Par défaut
    Ben que représente "$categorie => $types" dans ton foreach ? je comprends le foreach (array_expression as value).. mais pas l'autre :s

  6. #6
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    $list est un tableau associatif
    un print_r ou var_dump te donne la structure.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $list[$categorie][$i]
    retourne la valeur stockée dans le tableau $list[$categorie] pour la clé $i
    retourne la valeur (ici un tableau de types) stockée dans le tableau $list pour la clé $categorie

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    foreach($tablo as $key => $value)
    parcours le tableau et pour chaque clé donne la valeur associée

    Voir les tableaux associatifs...

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

Discussions similaires

  1. [Tableaux] Tableau plusieurs dimensions
    Par romeo_fr dans le forum Langage
    Réponses: 1
    Dernier message: 29/09/2007, 22h12
  2. [Tableaux] Tableau à 2 dimensions: utilisation
    Par kurkaine dans le forum Langage
    Réponses: 3
    Dernier message: 11/01/2007, 20h14
  3. [Tableaux] Tableau à 3 dimensions
    Par nais_ dans le forum Langage
    Réponses: 7
    Dernier message: 31/08/2006, 15h45
  4. [Tableaux] Tableau à 2 dimensions + input text
    Par ninoune dans le forum Langage
    Réponses: 12
    Dernier message: 27/04/2006, 15h04
  5. [Tableaux] Tableau à 3 dimensions
    Par phpaide dans le forum Langage
    Réponses: 2
    Dernier message: 20/04/2006, 15h06

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