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 :

Clé d'un élément de tableau [PHP 5.2]


Sujet :

Langage PHP

  1. #1
    Membre Expert

    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2007
    Messages
    3 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 542
    Par défaut Clé d'un élément de tableau
    Bonjour,

    Svp, comment récupérer la clé d'un élément n d'un tableau sans récupérer toutes les clés avec array_keys ?

    Je ne vois aucune fonction du genre array_key(montablo[0]).

    Actuellement, je sis obligé de faire un foreach rien que pour récupérer la clé du premier élément du tableau.

    Papy !

  2. #2
    Membre Expert Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 895
    Par défaut
    T'es pourtant pas loin
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $myKeys = array_keys($mon_array);
    $laCleQueJeVeux = $myKeys[0];

  3. #3
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Pour récupérer la clé correspondant à une valeur donnée dans un tableau, tu as array_search et pour récupérer la clé de l'élément courant, tu as key...
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  4. #4
    Membre Expert Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 895
    Par défaut
    ha ouais lol j'viens de relire le post... j'avais fait ça trop vite la premiere fois du coup j'ai un peu répondu à côté

    Sinon, si tu veux chercher une valeur parmis les clés, tu as aussi array_key_exists()

  5. #5
    Membre Expert

    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2007
    Messages
    3 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 542
    Par défaut
    Citation Envoyé par Celira Voir le message
    Pour récupérer la clé correspondant à une valeur donnée dans un tableau, tu as array_search et pour récupérer la clé de l'élément courant, tu as key...
    array_search me conviendra très bien, merci

    Ta réponse soulève une question au débutant php que je suis: Comment on détermine l'élément courant d'un tableau ? est-ce que c'est forcément l'élément 0 tant qu'on n'a pas fait un next ?

  6. #6
    Membre Expert

    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2007
    Messages
    3 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 542
    Par défaut
    Citation Envoyé par darkstar123456 Voir le message
    ha ouais lol j'viens de relire le post... j'avais fait ça trop vite la premiere fois du coup j'ai un peu répondu à côté

    Sinon, si tu veux chercher une valeur parmis les clés, tu as aussi array_key_exists()
    pas grave pour la première réponse, merci quand même.

    J'utilise le array_key_exist déjà. En fait, j'ai un tableau dans lequel je stocke des valeurs, chacune associé à une clé. Et pour récupérer les valeurs depuis l'extérieur de ma classe, j'utilise __get pour récupérer la valeur désirée dans le tableau. Si le array_key_exist me donne vrai je prend la valeur correspondant à la clé et je la retourne. Voilà 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
    22
    23
    24
    25
    26
    27
    private $keysValues = array(
        "MessageId"     => array("Message-ID:"      => "", "Message-id:" => ""),
        "To"            => array("To:"              => ""),
        "From"          => array("From:"            => ""),
        "Subject"       => array("Subject:"         => ""),
        "Date"          => array("Date:"            => ""),
        "Priority"      => array("X-Priority:"      => ""),
        "ReturnPath"    => array("Return-Path:"     => ""),
        "VersionMIME"   => array("MIME-Version:"    => ""),
        "ContentLength" => array("Content-Length:"  => "")
    );
     
    public function  __get($name) {
     
        if (array_key_exists($name, $this->keysValues)) {
            $result = "";
            foreach ($this->keysValues[$name] as $key => $value) {
                if ($value != "") {
                    $result = $value;
                }
            }
            return $result;
        }
     
    ....
     
    Le code est incomplet, c'est juste pour ontrer ma structure de tableau. la recherche de clé se fait à différents endroits.
    La première clé est le nom de la propriété qu'on peut récupérer, l'élément lié est li même un tableau d'un seul élément avec le token à chercher dans la source et la valeur récupérée. Pour l'instant, je ne voyais pas comment faire sans utiliser un foreach. array_search sera plus pratique.

    Merci et bonne journée.

  7. #7
    Membre Expert

    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2007
    Messages
    3 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 542
    Par défaut
    arf ... Le boulet que je suis. Je peux pas utiliser array_search ... mais key() me donnera forcément la clé que je cherche puisque je n'ai qu'un élément par élément tableau.

    key sera donc la solution.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 19/03/2015, 19h31
  2. Supprimer un élément de tableau
    Par zoidberg dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 26/06/2006, 17h34
  3. Arguments v.s éléments de tableau
    Par Omfraax dans le forum Maple
    Réponses: 1
    Dernier message: 10/06/2006, 15h17
  4. [Tableaux] Insérer des éléments à un tableau
    Par richard038 dans le forum Langage
    Réponses: 5
    Dernier message: 11/05/2006, 23h02
  5. Soustraire des éléments de tableau entre eux
    Par syl2095 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 20/01/2005, 16h29

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