Hello,
Ma manière d'accéder à l'élément serait simple si on pouvait procéder de la manière suivante
A priori cela est faisable tel quel (avec ou sans, suivant les goûts, l'aide d'une petite fonction récursive qui te permettrait de gérer un nombre de niveaux virtuellement illimité)

Sous quelle version de php tournes-tu ?
Le problème est assez simple comme tu l'as bien compris : quand on veut accéder à un index dans un tableau, on écrit :
$var= $tableau['cle_1']['cle_2']['cle_3'] /* ... */ ['cle_n'];
Dans cette écriture on peut facilement rendre variables les index... Mais pas les crochets (qui symbolisent l'accès aux index). Ce qui fait que l'expression sera toujours figée dans le nombre
n de niveaux traversés (même si on transforme cette ligne en mettant un maximum de variables, le nombre de crochets, lui, ne va pas varier).
Maintenant qu'on sait ce qui gêne, essayons d'imaginer ta fonction chercherInfo :
function chercherInfo($tableau, $chemin){
$chemin_eclate=explode('.',$chemin);
/*
* Ici la partie intéressante qui manque
*/
return $valeur;
}
Reste plus qu'à savoir avec quoi on va remplacer le commentaire du milieu. Je te donne trois pistes pour ça (je te laisse écrire ces codes toi-même, car l'exercice est amusant, et je l'espère à ta portée avec mes indications):
- La première piste fait appel à eval() (oui, la fonction dont le nom rime avec "c'est mal") mais elle a l'avantage d'être super simple (et presque justifiée car tu veux là outrepasser une limite syntaxique de php). Elle consiste à construire dans une chaîne de caractères (donc de manière 100% variable) la fameuse ligne de code et de passer tout ça dans eval(). Et hop ça marche (en une seule ligne)
- La deuxième piste, plus compliquée (mais aussi plus propre et probablement plus performante), utilise la récursion : notre fonction chercheInfo s'appellera elle-même, autant de fois qu'il le faudra, et va accéder à un seul niveau du tableau à la fois. Quand on arrive au "dernier" niveau, on arrête cette chaîne d'appels et on retourne simplement la valeur obtenue, et on se retrouve alors dans l'appel précédent de chercheInfo qui lui-même retourne bêtement la valeur que tu viens de récupérer, passant ainsi à l'appel précédent... et ainsi de suite. (pas de panique : heureusement c'est plus simple à faire qu'à expliquer !

)
- Il y a aussi un compromis intéressant, utilisant une simple boucle (for ou foreach au choix) à la place de la récursion (mais utilisant le même principe d'accès à un niveau à la fois). C'est à priori la méthode la plus avantageuse au niveau perfs d'ailleurs et vraiment simple à écrire (tellement simple que j'y pense en dernier, lol)
A toi maintenant
