[Perl] itérer sur les valeurs d'un tableau de hash de hash...

itérer sur les valeurs d'un tableau de hash de hash... [Perl] - Perl - Programmation

Marsh Posté le 06-02-2003 à 17:07:54    

bonjour,
j'ai l'habitude programmer en PHP donc j'ai plutôt l'habitude que ce soit facile :D (Mega troll detected !)
 
Je n'arrive pas à manipuler un hash à 2 dimensions qui contient au final un tableau (non associatif, un array quoi). Je le passe dans un fonction, il faut inverser les valeurs avec les clefs pour voir si la valeur appartient bien au tableau... Bref que du bonheur en PHP, que de temps perdu en Perl, mais je vais bien réussir à le faire, c pas possible autrement !
 
Voilà le topo :

Code :
  1. $tab{level1}{level2} = ( 'value1', 'value2' );


j'ai en fait besoin d'une fonction qui me dise si 'value1' est bien une valeur du tableau $tab{level1}{level2}. Comme in_array( 'value1', $tab{level1}{level2} ) le ferait en PHP. Sachant que je dois tester cette appartenance au tableau dans une fonction...
 
Bref  :cry:


---------------
Ma galerie photo créée avec Piwigo et hébergée sur Piwigo.com
Reply

Marsh Posté le 06-02-2003 à 17:07:54   

Reply

Marsh Posté le 06-02-2003 à 17:30:30    

solution ultra-horrible que j'espère le plus provisoire possible :
 

Code :
  1. $tab{level1}{level2}{0} = 'value1';
  2. $tab{level1}{level2}{1} = 'value2';
  3. sub my_first_function()
  4. {
  5.   if ( in_array( 'value2', $tab{level1}{level2} ) )
  6.   {
  7.     print 'toto'."\n";
  8.   }
  9. }
  10. sub in_array()
  11. {
  12.   my $val = $_[0];
  13.   my $tab = $_[1];
  14.   @list = values %{$tab};
  15.   for ( $i = 0; $i <= $#list; $i++ )
  16.   {
  17.     if ( $list[$i] eq $val )
  18.     {
  19.       return 1;
  20.     }
  21.   }
  22.   return 0;
  23. }


 
ref, c'est horrible, mais ça marche :(


---------------
Ma galerie photo créée avec Piwigo et hébergée sur Piwigo.com
Reply

Marsh Posté le 06-02-2003 à 17:42:33    

z0rglub a écrit :

bonjour,
j'ai l'habitude programmer en PHP donc j'ai plutôt l'habitude que ce soit facile :D (Mega troll detected !)
 
Je n'arrive pas à manipuler un hash à 2 dimensions qui contient au final un tableau (non associatif, un array quoi). Je le passe dans un fonction, il faut inverser les valeurs avec les clefs pour voir si la valeur appartient bien au tableau... Bref que du bonheur en PHP, que de temps perdu en Perl, mais je vais bien réussir à le faire, c pas possible autrement !
 
Voilà le topo :

Code :
  1. $tab{level1}{level2} = ( 'value1', 'value2' );


j'ai en fait besoin d'une fonction qui me dise si 'value1' est bien une valeur du tableau $tab{level1}{level2}. Comme in_array( 'value1', $tab{level1}{level2} ) le ferait en PHP. Sachant que je dois tester cette appartenance au tableau dans une fonction...
 
Bref  :cry:  


 
Va lire http://www.enstimac.fr/Perl/DocFr/perllol.html
Tu trouveras plein d'infos
 
Ps: non ce n'est pas une blague malgre le nom !


Message édité par phoenix35 le 06-02-2003 à 17:45:21
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed