djtoz  | Salut,
   j'ai une structure de type HoHoHoH... de profondeur inconnue, exemple:
  
  Code :
 - $toto = {
 -            key1 => {
 -               key2 => {
 -                  param1 => value1,
 -                  param2 => value2,
 -                  },
 -               * => {
 -                  param3 => value3,
 -                  },
 -               },
 -            * => {
 -               key4 => {
 -                  * => {
 -                     param4 => value4,
 -                     },
 -                  },
 -               },
 -            };
 
  |  
 
   je cherche a reperer les cles egales a '*' et quand j'en trouve une,
 je veut copier la structure sur laquelle pointe la cle un nombre X de fois en creeant les cles necessaires.
 (on ne s'interessera pas ici a la facon de nommer les nouvelles cles crees)
   puis la structure ayant pour cle '*' est supprime.
   exemples
 X est egale a 2:
   je voudrais obtenir une structure egale a cela:
  
  Code :
 - $toto = {
 -            key1 => {
 -               key2 => {
 -                  param1 => value1,
 -                  param2 => value2,
 -                  },
 -               newkey3 => {
 -                  param3 => value3,
 -                  },
 -               newkey4 => {
 -                  param3 => value3,
 -                  },
 -               },
 -            newkey1 => {
 -               key4 => {
 -                  newkey6 => {
 -                     param4 => value4,
 -                     },
 -                  },
 -                  newkey5 => {
 -                     param4 => value4,
 -                     },
 -                  },
 -               },
 -            newkey2 => {
 -               key4 => {
 -                  newkey8 => {
 -                     param4 => value4,
 -                     },
 -                  },
 -                  newkey7 => {
 -                     param4 => value4,
 -                     },
 -                  },
 -               },
 -            };
 
  |  
 
   j'ai deja reussi a faire quelque chose qui marche mais je parcours le hash a "expander" dans le sens "normal",
 et par consequent je suis oblige de repeter l appel a ma fonction plusieurs fois car quand je copie un bloc
 dont la cle etait une etoile, il peut arriver que je duplique a nouveau des etoiles qui se trouverai
 dans la sous-structure copier...
   bref ca fonctionne mais c'est pas beau !
   l'ideal serait de faire un parcours du hash en profondeur, dans le sens "inverse",
 mais je n'y arrive pas de cette facon...
   si quelqu'un a reussi a comprendre mes explications qui sont pas tres clair,
 deja bravo,
 et eventuellement si vous aviez une idee pour m'aidez, n'hesitez pas.
   je vous remercie d'avance.    |