Php array() pour cibler un autre array()

Résolu
Gulvar -  
 Gulvar -
Bonjour,

J'ai besoin d'aide pour une application php:
J'ai un tableau array() multidimensionnel que nous appellerons "données".
"0"=>"25" 
"1"=>"45" 
"2"=>"0"=>27 
     "1"=>35 
"3"=>"53" 


J'ai un autre tableau (que nous appellerons "chemin") dont les valeurs forment un "chemin" à travers le tableau "données" ( ce tableau est généré dynamiquement depuis une fonction que je ne peux pas altérer).

"0"=>"2" 
"1"=>"1" 


Afin de savoir quel élément est visé dans le tableau "données" je dois utiliser le tableau "chemin":
dans l'exemple ci dessous je vise l'élément "35" qui dans l'élément key=1 qui est lui-même dans l'élément key=2.

en "statique" cela donnerait :

$donnees[$chemin[0]][$chemin[1]]="nouvelle donnée"


Je ne parviens pas à rédiger la syntaxe qui me permettra de faire ce travail dynamiquement (le tableau $chemin change régulièrement):
Ce qui suit est totalement faux et aberrant mais je le mets afin d'être clair dans ce que je voudrais faire:
/*CE CODE EST FAUX IL EST ICI A TITRE D'EXEMPLE DE CE QUE JE VOUDRAIS FAIRE*/ 

$cible=""; 

foreach($chemin as $pas){ 
 $cible.=[$pas]; 
} 

$donnees.cible="nouvelle donnée"; 



A voir également:

1 réponse

le père
 
Bonsoir,

Si j'ai compris ton besoin...
$donnees=array(25,45,array(27,35),53);
$chemin=array(2,1);
$chm='$donnees';
for ($k=0; $k<count($chemin);$k++) $chm .="[$chemin[$k]]";

echo eval ('return '.$chm.';'),'<br>';
eval ( $chm."='nouvelle donnée';");
echo eval ('return '.$chm.';');
1
Gulvar
 
merci beaucoup!
0