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 :

Recherche dans un tableau


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2010
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 20
    Points : 17
    Points
    17
    Par défaut Recherche dans un tableau
    Bonjour,

    J'ai un petit souci dans la recherche de clé dans mon tableau. Je récupère les données dans mon fichier qui contient ces quelques lignes, ces données que je place ensuite dans un tableau.
    titi;123;toto;456;tata;789;
    Et je voudrais trouver où se trouve la case "toto" et afficher la clé de cette case "2" en l'occurence.

    Voila mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $homepage = file_get_contents('./gencod.txt');
    $gencod = split(';',$homepage); // Je mets chaques données dans une case
    $nomfichier[0]='toto';
    for ($z=0;$z<sizeof($gencod);$z++)
    {
    $array = array($z => $gencod[$z]);
    }
    echo $key = array_search($nomfichier[0],$array) // devrait afficher 2
    Merci de votre aide

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Euh, vous voulez faire quoi avec votre itération for ?

    Un coup d'array_flip pour inverser clés/valeurs, c'est plus direct :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    $search = 'toto';
    $parts = array_flip(preg_split('/;/', file_get_contents('./gencod.txt'), -1, PREG_SPLIT_NO_EMPTY));
    if (isset($parts[$search])) {
        printf('%s trouvé en position %d<br />', $search, $parts[$search]);
    }
    Sauf qu'il ne faut pas avoir plusieurs "valeurs" identiques (array_search aurait eu +/- le même problème, elle renverrait l'index de la première).

  3. #3
    Membre éprouvé
    Avatar de Antoine_935
    Profil pro
    Développeur web/mobile
    Inscrit en
    Juillet 2006
    Messages
    883
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur web/mobile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 883
    Points : 1 066
    Points
    1 066
    Par défaut
    array_flip est bien s'il faut faire plusieurs recherches.
    Sinon, array_search suffit amplement.

Discussions similaires

  1. [Tableaux] recherche dans un TABLEAU
    Par dunbar dans le forum Langage
    Réponses: 3
    Dernier message: 15/08/2006, 00h06
  2. [VBA-E]Recherche dans un tableau
    Par Zebulon777 dans le forum Macros et VBA Excel
    Réponses: 49
    Dernier message: 05/07/2006, 10h35
  3. Recherche dans un tableau
    Par Bes74 dans le forum Access
    Réponses: 5
    Dernier message: 04/07/2006, 17h26
  4. [VBA-E] recherche dans un tableau
    Par tibss dans le forum Macros et VBA Excel
    Réponses: 33
    Dernier message: 03/05/2006, 17h52
  5. URGENt: recherche dans un tableau trié par ordre alphabetiqu
    Par JulPop dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 12/02/2005, 17h21

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