Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/12/2011, 14h48   #1
 
Homme
Administrateur de base de données
Inscription : 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
Points : -2
Points : -2
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 :
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 :
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.
daniel57 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2011, 15h24   #2
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 462
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 462
Points : 2 552
Points : 2 552
Envoyer un message via Skype™ à rawsrc
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 :
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);
 
?>
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h00.


 
 
 
 
Partenaires

Hébergement Web