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 :

Récupérer la clé d'un tableau de tableau d'objets MVC PHP


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2013
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Récupérer la clé d'un tableau de tableau d'objets MVC PHP
    Ci-dessous un var_dump de mon tableau $A_Collection (extrait)
    Je suis débutant en php (en cours de formation)
    Je souhaiterais parcourir mon tableau et retourner l'index de mon tableau lorsque je tombe sur le code que je cherche (exemple ici le code 34 me retournerait l'index 1 de mon tableau)
    j'ai une public function donneCode() pour récupérer dans ma classe collection le code protégé.

    Je sais faire lorsqu'il s'agit d'un tableau comprenant plusieurs tableaux mais là j'avoue qu'avec les objets je suis perdu.

    auriez-vous des pistes d'exploration à me fournir ?
    array (size=2)
      0 => 
        object(Collection)[8]
          private 'S_titre' => string 'ANALOGIE' (length=8)
          protected 'S_nomTable' => string 'collection' (length=9)
          protected 'I_code' => string '13' (length=2)
      1 => 
        object(Collection)[14]
          private 'S_titre' => string 'ANIMAUX' (length=7)
          protected 'S_nomTable' => string 'collection' (length=9)
          protected 'I_code' => string '34' (length=2)

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    631
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2012
    Messages : 631
    Points : 1 220
    Points
    1 220
    Par défaut
    bonjour,

    par exemple si tu veux construire un tableau d'objets $tableau:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $obj =new stdclass;
    $obj->a='valeur de a';
    $obj->b='valeur de b';
    $obj->c='valeur de c';
     
    $tableau = array($obj);
    var_dump($tableau );
     
    echo $tableau[0]->a ;//affiche a
    echo $tableau[0]->b ;//affiche b
    //...

    or dans ton cas les attributs de la classe Collection ne peuvent être accessibles à l’extérieur de celle-ci car ils sont protégés et/ou privés. Peut être qu'il faut revoir la visibilité des attributs de Collection ou tout simplement passer par des getters ou setters?

  3. #3
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2013
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Justement au début de mon message j'indique que pour accéder aux attributs protégés je peux utiliser une public function donneCode(){return $this-> I_code;} qui ce trouve être un accesseur et je ne peux en aucun cas modifier l'accessibilité. La création du tableau en lui-même n'est pas le problème, j'ai besoin de récupérer l'index du tableau pour l'exploiter par la suite.

    Merci d'avance

  4. #4
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2013
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    exemple un peu bancale de mon accesseur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    foreach ($A_collection as $value)
    if ($value->donneCode()=='34')
    {
    echo $value->donneTitre();
    }
    résultat : pour le code 34 il me retourne bien ANIMAUX

  5. #5
    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,

    utilise l'autre forme du foreach :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    foreach ($A_collection as $key => $value)
    {
        if ($value->donneCode() == '34')
            return $key; // $key = 1
    }

  6. #6
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2013
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Merci mille fois

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 22/03/2007, 14h09
  2. récupérer le numéro de ligne d'un tableau
    Par seve998 dans le forum Struts 1
    Réponses: 1
    Dernier message: 26/02/2007, 18h52
  3. Réponses: 3
    Dernier message: 10/11/2006, 17h59
  4. Réponses: 6
    Dernier message: 17/10/2006, 13h21
  5. [javascript/dom] Récupérer le nombre de lignes d'un tableau
    Par LE NEINDRE dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 17/02/2006, 12h51

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