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 :

Tableau : comment récupérer la clé suivante ? [PHP 5.2]


Sujet :

Langage PHP

  1. #1
    Membre averti Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Points : 436
    Points
    436
    Par défaut Tableau : comment récupérer la clé suivante ?
    Bonjour à toutes et tous,

    J'ai épluché la doc et la FAQ mais je n'ai pas trouvé de réponse.

    Soit un tableau, crée à partir d'une requête SQL, trié avec asort sur la valeur, dont je ne connais pas le contenu :

    array(
    [124] => "A"
    [89] => 'B'
    [12] => "C"
    [7] => "D"
    )
    Comment récupérer la clé 12 si je connais la clé 89 ? Je parle de la valeur même de la clé, et non pas sa valeur associée.
    Merci pour vos conseils.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 625
    Points : 822
    Points
    822
    Par défaut
    Hello,

    Y'a pas de méthode simple je crois.

    Une possibilité :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    // récupérer la liste des clés de ton tableau
    $cles = array_keys( $monTableau );
     
    // rechercher l'index de 89 dans la liste de clés
    $index = array_search( 89 , $cles ); //devrait renvoyer 1
     
    // récupérer l'élément suivant dans la liste des clés
    $cleSuivante = $cles[ $index + 1 ];

  3. #3
    Membre averti Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Points : 436
    Points
    436
    Par défaut
    Bonjour,

    Bien vu !
    De mon côté, j'ai cherché et trouvé cette fonction qui le fait bien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    function cle_suivante($arr, $key)
    {
       $keys = array_keys($arr);
       $keyIndexes = array_flip($keys);
       $return = array();
     
       if (isset($keys[$keyIndexes[$key]+1])) {
           $return[] = $keys[$keyIndexes[$key]+1];
       }
     
       return $return;
    }
    Merci beaucoup de t'être penché sur ma question, qui, effectivement, n'était pas simple.
    Bonne fin de journée.

  4. #4
    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 : 48
    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
    Bonjour,

    Allez dans les délires à la con tu peux aussi faire ça en une ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return key(array_slice($a, array_search(89, array_keys($a)) + 1, 1, TRUE));

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

Discussions similaires

  1. [DisplayTag] Comment récupèrer le rownum suivant d'une liste
    Par snoopo dans le forum Taglibs
    Réponses: 0
    Dernier message: 22/06/2012, 12h28
  2. Réponses: 14
    Dernier message: 19/11/2010, 10h28
  3. Réponses: 3
    Dernier message: 13/06/2008, 20h33
  4. Réponses: 3
    Dernier message: 19/04/2006, 13h28
  5. Comment récupérer la taille d'un tableau dynamique ?
    Par Tchaill39 dans le forum Langage
    Réponses: 4
    Dernier message: 08/12/2005, 14h21

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