Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1424 connectés 

  FORUM HardWare.fr
  Programmation
  Perl

  tableau associatif multidimensionel

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

tableau associatif multidimensionel

n°1469255
pierrickg
Posté le 02-11-2006 à 14:04:39  profilanswer
 

bonjour tous,
les hash et autres tableaux, ça commence à me rendre :pt1cable:
 
je récupère des données d'une base mysql et je veux construire un tableau qui sera :
 
%tab[site][lien]=[nom, url]
 
et ensuite lire en faisant une boucle genre pour lister tous les lien->url de chaque site
 
for $i (1 .. 10) {
   while(($key, $val) = each(%tab[$i])){
         print "$key, $val";
   }  
}
 
mais bon voilà, je suis perdu dans un monde multidimensionel d'associations de hash et tableaux :whistle:
Comment ajouter à %tab[db->site] le tableau %tab2[db2->lien] contenant lui-même le tableau %lien = (nom, url)
 
Je pense à séparer en un tableau contenant tous les "lien" par site tab[site]=lien  
puis un autre tab2[lien]=[nom, url]
 
si je peux avoir un coup de main...

mood
Publicité
Posté le 02-11-2006 à 14:04:39  profilanswer
 

n°1469715
pierrickg
Posté le 03-11-2006 à 08:24:01  profilanswer
 

Bon. pour être plus claire, voici mon bout de code :
 
 while ($data = $sth->fetchrow_hashref()) {
 $nb_liens++;
 # test url
 $etat = &check_url($data->{'url'});  
 if ($etat eq "ok" ){
  $nb_ok++;
 } else {
  push(@bad, $data->{'site_id'});
  push @{ $tab_bad[$data->{'site_id'}] }, $data->{'lien_nom'}, $data->{'url'}; ##### ET LA CA MARCHE PAS
  $nb_bad++;
 }  
 }
 
et appelle du tableau :
 foreach $id (@bad) {
 $list_l = '';
  foreach $t ($tab_bad[$id]){
  $list_l .= "$lname - $lurl \n"; ###### ET LA NON PLUS FORCEMENT
 }
 }

n°1470960
Danjer
Posté le 05-11-2006 à 23:56:36  profilanswer
 

Il ne faut pas confondre table de hash et tableau
 

Code :
  1. my $site_list = {};
  2. while ($data = $sth->fetchrow_hashref()) {
  3. $nb_liens++;
  4. # test url
  5. $etat = &check_url($data->{'url'});
  6. if ($etat eq "ok" ){
  7.  $nb_ok++;
  8. } else {
  9.                 my $h = {};
  10.                 #on index chaque url par nom
  11.                 $h->{$data->{'lien_nom'}} = $data->{'url'};
  12.                 #on index par site (Faire une cle non numerique c'est mieux)
  13.                 $site_list->{$data->{'site_id'}} = $h;
  14. }
  15. }
  16. $nb_bad = scalar(keys %$site_list);
  17. for my $id (keys %{$site_list}) { #en perl 6 plus de foreach
  18.         my $list_l;
  19.  for my $name (keys %{$site_list->{$id}}){
  20.                 $list_l .= "$name - " . $site_list->{$id}->{$name} . "\n";
  21.         }
  22. }


 
J'ai pas teste... J'avais la fleme, a une ou deux erreurs de syntaxe ca doit etre bon.

n°1473086
pierrickg
Posté le 09-11-2006 à 16:15:52  profilanswer
 

ah!
OK
je teste ça
 
Merci

n°1475133
pierrickg
Posté le 14-11-2006 à 11:56:49  profilanswer
 

en fait j'ai mis % à la place de $ pour site_list et h
Sans ça, j'avais qu'un seul lien même pour les sites ayant plusieurs liens faux.
Avec ça, le problème est que ça liste tous les liens faux à chaque site.
 
j'ai mis $list_l = ''; avant le "for my $id" mais ça ne change rien.
 
moi je cherche à lister uniquement, mais tous, les liens faux à chaque site.
 
si qqun voit d'où ça vient...


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Perl

  tableau associatif multidimensionel

 

Sujets relatifs
[VB] Extraire une ligne excel dans un autre tableau[VBS,WSH] Fonction qui retourne un tableau
Colonne fixe dans un tableau et retour chariot.fixer le fond d'un tableau
Ecrire le rang dun tableau dont la valeur est dans un autre tableau .Question somme tableau Débutant
Classement d'un tableau (clés ET valeurs)Comment copy les éléments du 1er tableau vers la 2ieme tableau
Créer un formulaire conforme au html 4 avec un tableau[HTML/CSS/Javascript] Probleme background avec les lignes d'un tableau
Plus de sujets relatifs à : tableau associatif multidimensionel


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR