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] Lire un array de array avec un foreach


Sujet :

Langage PHP

  1. #1
    Membre actif
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2006
    Messages
    1 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Seine Maritime (Haute Normandie)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 080
    Points : 287
    Points
    287
    Par défaut [Tableaux] Lire un array de array avec un foreach
    Bonjour,

    Je ne me souvient plus comment lire un array de array avec une foreach :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $dataLocation = array();
    $dataLocation[] = array($donnees_1['ID'],$donnees_1['name']);
     
    foreach($dataLocation as $cle => $element)
    {
        echo '[' . $cle . '] vaut ' . $element . '<br />';
    }
    ce que j'ai codé ne fonctionne pas...

    merci d'avance

    Arnaud

  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
    Tu peux imbriquer un deuxieme foreach()

  3. #3
    Membre expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Points : 3 950
    Points
    3 950
    Par défaut
    Quand tu définis que chaque item de $dataLocation[] est un array, et qu'ensuite tu parcours l'array père avec foreach, tu ne peux pas accéder à autre chose que cet item array lui-même.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
    $dataLocation = array();
    $dataLocation[] = array('ID','name');
    ?>
    <pre>
    <?php
     print_r($dataLocation);
     ?>
     </pre>
     <?php
    foreach($dataLocation as $cle => $element){
        echo '[' . $cle . '] vaut ' . $element . '<br />';
        }
    ?>
    donne
    Array
    (
    [0] => Array
    (
    [0] => ID
    [1] => name
    )

    )


    [0] vaut Array
    Pour voir le contenu de [0], c'est à dire $cle dans ton code il faut le parcourir lui-même avec foreach ou avec $cle[0] et $cle[1]

  4. #4
    Membre actif
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2006
    Messages
    1 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Seine Maritime (Haute Normandie)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 080
    Points : 287
    Points
    287
    Par défaut
    euh dans ce cas ca donnerai quoi ?

  5. #5
    Membre actif
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2006
    Messages
    1 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Seine Maritime (Haute Normandie)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 080
    Points : 287
    Points
    287
    Par défaut
    en faite je réalise ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    // Tableau des anciennes locations
    $dataLocation = array();
     
    $reponse_1 = mysql_query('SELECT ID, name FROM glpi_dropdown_locations');
    while ($donnees_1 = mysql_fetch_array($reponse_1) )
    {
    	$dataLocation[] = array($donnees_1['ID'],$donnees_1['name']);
    }
     
    foreach($dataLocation as $cle => $element)
    {
        echo '[' . $cle . '] vaut ' . $element . '<br />';
    }
    il y a peut etre plus simple à faire...

  6. #6
    Membre expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Points : 3 950
    Points
    3 950
    Par défaut
    Ben oui, pourquoi ne pas faire le foreach directement sur $donnees_1 ?

  7. #7
    Membre actif
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2006
    Messages
    1 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Seine Maritime (Haute Normandie)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 080
    Points : 287
    Points
    287
    Par défaut
    alors j'ai fais ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    // Tableau des anciennes locations
    $dataLocation = array();
     
    $reponse_1 = mysql_query('SELECT ID, name FROM glpi_dropdown_locations');
    while ($donnees_1 = mysql_fetch_array($reponse_1) )
    {
    	$dataLocation[] = array($donnees_1['ID'],$donnees_1['name']);
    }
     
    foreach($dataLocation as $cle => $element)
    {
        echo '[' . $element[0] . '] vaut ' . $element[1] . '<br />';
    }

    j'ai bien mes éléments, mais pas les ID (enfin les ID du tableau, mais pas les ID que j'ai enregistré dans le tableau

  8. #8
    Membre actif
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2006
    Messages
    1 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Seine Maritime (Haute Normandie)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 080
    Points : 287
    Points
    287
    Par défaut
    j'ai trop fumer, cela fonctionne parfaitement !

    merci de votre aide

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

Discussions similaires

  1. [Tableaux] Remplir un tableau de array?
    Par wormseric dans le forum Langage
    Réponses: 3
    Dernier message: 06/11/2006, 15h24
  2. [Reflect] Créer un array d'objets avec le nom de leur classe
    Par Onarap dans le forum API standards et tierces
    Réponses: 18
    Dernier message: 12/06/2006, 13h24
  3. [Tableaux] rechercher dans une variable array()
    Par tom06440 dans le forum Langage
    Réponses: 2
    Dernier message: 29/03/2006, 18h45
  4. [Tableaux] Array sur deux colonnes et foreach..
    Par shadeoner dans le forum Langage
    Réponses: 4
    Dernier message: 16/03/2006, 09h46

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