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 tableau à 2 dimensions


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9
    Par défaut Recherche dans tableau à 2 dimensions
    Bonjour,

    Je vous expose un petit problème, d'optimisation.

    J'ai un premier tableau à une dimension, qui contient des codes.

    En gros
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    arrayCode[0]=234543;
    arrayCode[1]=245984;
    arrayCode[2]=343298;
    J'ai un second tableau, à deux dimensions, qui est une liste d'un répertoire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    arrayRepertoire[0]['reduit']='DC';
    arrayRepertoire[0]['libellé']='Ceci est un commentaire libre qui contient toujours un code 245984';
    arrayRepertoire[0]['fax']='0345678909';
    arrayRepertoire[0]['telephone']='0345678909';
     
    arrayRepertoire[1]['reduit']='GF';
    arrayRepertoire[1]['libellé']='Ceci est un commentaire libre qui contient toujours un code 343298';
    arrayRepertoire[1]['fax']='0312345678';
    arrayRepertoire[1]['telephone']='0398765432';
    Je dois écrire un petit script, qui me parcours le 1er tableau, et m'affiche tous les libellés du second qui contient le code contenu dans le 1er.

    Je parviens sans problème au résultat en parcourant à faisant 2 boucles foreach, mais je me demandais si il n'y avais plus facile et surtout plus rapide, car les tableaux sont assez gros.

    Je ne sais pas par exemple si il est possible d'utiliser des recherches dans des tableaux lorsque l'on est en 2 dimensions (par exemple dans arrayRepertoire[]['libellé'].

    Merci d'avance pour l'aide que vous pourriez m'apporter.

  2. #2
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    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
    Billets dans le blog
    12
    Par défaut
    Bonjour,

    Pour faire de l'optimisation sensible, il faut particulièrement bien connaitre les données manipulées: type, masque...
    Voici quelque chose qui devrait faire gagner du temps :
    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
    28
    29
    30
    31
    <?php
     
    $codes = array(234543, 245984, 343298);
    $reps  = array(
       array(
          'reduit' => 'DC',
          'libellé' => 'Ceci est un commentaire libre qui contient toujours un code 245984',
          'fax' => '0345678909',
          'telephone' => '0345678909'
       ),
       array(
          'reduit' => 'GF',
          'libellé' => 'Ceci est un commentaire libre qui contient toujours un code 343298',
          'fax' => '0312345678',
          'telephone' => '0398765432'
       )
    );
     
    // extraction des libellés : array(numero => libellé)
    $libelles = array();
    foreach($reps as $data) {
       $match = preg_match('/(\d)+/i', $data['libellé'], $nums);
       if ($match) {
          $libelles[$nums[0]] = $data['libellé'];
       }
    }
     
    $keyCodes  = array_flip($codes);
    $crossData = array_intersect_key($libelles, $keyCodes);
     
    ?>

Discussions similaires

  1. [array] rechercher dans tableau à 2 dimensions
    Par camyo dans le forum Langage
    Réponses: 2
    Dernier message: 14/02/2014, 15h06
  2. Recherche dans Tableau/Array
    Par Danyel dans le forum VB.NET
    Réponses: 9
    Dernier message: 13/04/2008, 21h26
  3. Recherche dans tableau 2 dimension / Copie tableau 2 dimension vers 1
    Par mustang-ffw02 dans le forum Windows Forms
    Réponses: 6
    Dernier message: 20/10/2007, 18h50
  4. fonction recherche dans tableau javascript
    Par calitom dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 27/11/2006, 15h51
  5. Recherche dans Tableau de point
    Par Platypus dans le forum Algorithmes et structures de données
    Réponses: 10
    Dernier message: 30/08/2005, 18h29

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