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 :

[Tableaux] Recherche évoluée dans un array PHP


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    253
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 253
    Par défaut [Tableaux] Recherche évoluée dans un array PHP
    Bonjour,

    Je suis à la recherche d'une technique permettant de faire une recherche dans un tableau qui en contient d'autres, indexée suivant une valeur de mon choix. La structure globale est la suivante:

    tab1 (
    [id_1] => tab2("attr1"=>val1, "attr2"=>val2)
    [id_2] => tab3("attr1"=>val3, "attr2"=>val4)
    [id_3] => tab4("attr1"=>val5, "attr2"=>val6)

    etc...
    )

    La recherche proprement dite se manifeste sous la forme d'un autre array contenant les valeurs désirées de "attr1", "attr2"...
    Pour l'instant j'utilise une technique qui liste le tableau principal pour vérifier la valeur des attributs dans chacun des sous-tableaux.
    Ceci est lourd et long au niveau du temps d'exécution, je cherche donc une fonction core PHP qui permette de faire la même chose.

    Auriez-vous des pistes?

    Merci et bon appétit.

  2. #2
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mai 2006
    Messages : 45
    Par défaut
    Je n’ai pas bien compris ce que tu veux exactement mais je pense que le deux fonctions
    et Peuvent t'aidé

  3. #3
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    253
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 253
    Par défaut
    Effectivement, mais le problème est qu'il faut quand même que je liste avec foreach l'array principal, qui peut contenir des milliers d'entrées pou contrôler le contenu des tableaux enfants. Le mieux serai de pouvoir rechercher dans les sous-array de l'array parent sans avoir à le lister.

    Dans l'arborescence que j'ai mis dans mon premier post, il faudrait faire une recherche dans les valeurs de tab2, tab3 ou tab4 sans lister tab1.

    Merci de ton aide.

    // -- Edit -- //

    J'ai un peu plus de temps pour expliquer mon projet:
    En fait, j'extraie de ma BDD de la data concernant des choses précises. Cette data se retrouve sous la forme de propriétés avec leur valeurs correspondantes dans un tableau PHP (i.e associatif). Pour avoir ces informations sous la forme d'un seul conteneur manipulable et "transportable", la fonction qui extraie cette data me retourne un array indexé suivant l'une des propriétés évoquées plus haut. Au final, on obtient une structure que j'évoquais dans mon premier post.
    Ce premier point ne saurait être remis en cause pas la présente étude.

    Le but du projet et de ressérer la recherche dans l'array conteneur afin de sortir une liste de sous-array correspondant plus à ce que l'on cherche.
    Le motif de cette recherche est fourni sous la forme d'un autre array donnant les noms des propriétés concernées en clé et les valeurs qu'elles doivent prendre pour que le test soit valide.
    Le nœud du problème est donc le temps d'exécution de cette recherche puisque jusqu'à maintenant j'étais obligé de lister avec foreach toutes les entrées de l'array principal pour effectuer un test sur tous les array enfants. C'est extrêmement long (pour un array de ~3000 entrées, on arrive à 0.7 secondes) et je pense que j'ai meilleur temps d'utiliser des fonction core de PHP. Le seul soucis est que celles qu'a proposé mbounou m'obligent à lister le conteneur pour effectuer un contrôle sur les sous-array.

    Voila vous en savez plus, j'espère que cela vous aidera.

Discussions similaires

  1. [Tableaux] Supprimé doublon dans un array
    Par arnaudperfect dans le forum Langage
    Réponses: 9
    Dernier message: 13/02/2008, 10h38
  2. [Tableaux] Mettre un " dans un array()
    Par yazerty dans le forum Langage
    Réponses: 7
    Dernier message: 17/03/2007, 11h02
  3. [Tableaux] Ajout url dans une page PHP
    Par franck.automaticien dans le forum Langage
    Réponses: 20
    Dernier message: 25/02/2007, 15h06
  4. [Tableaux] Recherche LIKE dans le code Html
    Par lunick dans le forum Langage
    Réponses: 1
    Dernier message: 22/06/2006, 14h40
  5. [Tableaux] Recherche valeur dans tableaux
    Par Kaimann dans le forum Langage
    Réponses: 10
    Dernier message: 21/10/2005, 12h57

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