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 :

Le mystère des array


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 50
    Par défaut Le mystère des array
    Bonjour à tous,

    Mystère ou incompréhension de ma part... je ne sais pas ou est ma faute.
    Je vous explique:

    J'ai un array "de base" contenant des informations prédéfinies. Un autre array contient des informations variables. Pour chaque entrée du second array, je vérifie si la clé est présente dans le premier. Si oui, j'affiche la valeur. Simple non ? Mais ca ne fonctionne pas !

    Par contre, si j'affiche la valeur contenu dans le premier array et inscrivant la clé "en dur", cela fonctionne !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    $a1 = array('test1' => 'valeur1', 'test2' => 'valeur2', 'test3' => 'valeur 3');
    $a2 = array('bonjour', 'hello', 'test2');
     
    foreach($a2 as $key) {
    	if(in_array($key, $a1))
    		echo $a1[$key];
    	else
    		echo 'Pas dans le array';
    	echo '<br />';
    }
     
    // Ici j'essaye d'afficher la valeur en inscrivant la valeur en dur et ca marche
    echo $a1['test2'];
    Le résultat:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Pas dans le array
    Pas dans le array
    Pas dans le array
    valeur2

  2. #2
    Membre Expert
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Par défaut
    Salut,

    je vérifie si la clé est présente dans le premier
    Dans ce cas, il faut utiliser array_key_exists() qui vérifie si une clé existe dans un tableau.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(array_key_exists($key, $a1))

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

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

    La fonction in_array() recherche parmi les valeurs (soit valeur1, valeur2, valeur3) de ton tableau $a1, et non parmi les clefs.

    Il faut tester l'existence de la clef avec isset().

  4. #4
    Membre chevronné Avatar de rikemSen
    Homme Profil pro
    Analyste Développeur Web - Fizzup.com
    Inscrit en
    Décembre 2007
    Messages
    387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste Développeur Web - Fizzup.com
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 387
    Par défaut
    in_array va chercher sur tes "valeur1", "valeur2" du tableau $a1. Il va pas chercher sur la clef ("test1", "test2").

    fais un test en changeant dans $a2 "test2" par "valeur2". Et logiquement tu auras un message d'erreur
    Ca indique que la valeur a été trouvée mais que l'instruction:
    Est fausse. (Bah oui, on a la valeur mais pas la clé.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 50
    Par défaut
    Super mille merci ! Je ne connaissais pas le array_key_exists C'est un grand service que vous m'avez rendu !!

    [edit] vraiment c'est une aide très précieuse je viens de modifier une de mes fonctions et tout marche à merveille

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 24/01/2008, 13h48
  2. [Tableaux] Tableau associatif avec des array
    Par Piccolo_son dans le forum Langage
    Réponses: 6
    Dernier message: 18/12/2007, 08h23
  3. Réponses: 4
    Dernier message: 31/08/2007, 17h28
  4. Réponses: 22
    Dernier message: 14/04/2006, 17h01
  5. Utilisation des Array en javascript serveur
    Par clisson dans le forum XMLRAD
    Réponses: 4
    Dernier message: 13/06/2005, 15h46

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