voilà j'ai des foreach en boucle, mais avec toujours le même code dedans.
Voici l'exemple de 3 niveaux.
Je souhaiterais pouvoir le boucler pour avoir qu'une fois le code mais pouvoir le répéter 15 fois si je veux
Bonjour je veux bien faire un print_r mais ça va être imbuvable :-D
en gros voilà, c'est pour un projet de génération automatique d'arbre généalogique (d'où le côté récursif) à X niveaux, X étant variable.
je mets toutes les personnes de l'arbre et leur infos dans un array $var
$var est un array à 3 dimensions
$var[$niveau][$qui][$infos]
$niveau : le niveau de l'arbre
$qui : chaque personne du niveau $niveau
$infos : toutes les infos de la personne $qui du niveau $niveau
$infos[0] = Nom du membre
$infos[1] = Nom de l'époux
$infos[2] = Sexe de l'époux (uniquement pour pouvoir conjugé époux/épouse)
$infos[3] = Occupation / Travail du membre
$infos[4] = Nombre d'enfants (pour les calculs d'affichage)
$infos[5] = Nom de la photo du membre pour affichage vignette
$infos[6] = ID du membre
par exemple :
$var[6][0] = array(
"Grand Grand Papi",
"Grand Grand Mamie",
"Femme",
"Entrepreneur en Maconnerie",
"2",
"default_m.jpg",
"1"
);
$var[5][0] = array(
"Grand Papi 1",
"Grand Mamie 1",
"Femme",
"Charpentier",
"1",
"default_m.jpg",
"2"
);
$var[5][1] = array(
"Grand Papi 2",
"Grand Mamie 2",
"Femme",
"Brocanteur",
"2",
"default_m.jpg",
"3"
);
Ensuite une fois $var définit
// Comptage du nb de niveaux
$nb_niveau = count($var) - 1;
// Déclaration des variables
for ($k=$nb_niveau; $k >= 2 ; $k--) {
$nb_pers_[$k] = 0;
$nb_pers_affich_[$k] = -1;
}
$z = 0;
// Déclaration des fonctions
function AffichMembre($z_f, $var_f, $nb_niveau_f, $qui_f){
Et ensuite la génération de l'arbre avec le code que j'ai mis en exemple dans mon premier post.
Ce script fonctionne bien, mais il faut que j'écrive les 15 niveaux si j'en veux 15 par exemple
j'ai réussi donc à "variabiliser" tout mon script de sorte que ce soit le même à chaque niveau dans le but de le boucler par la suite ... mais là je sèche
Au cas où tu n'y arriverai pas .. je pourrais peut-être t'aider à condition que :
- Tu me fournisses un array d'exemple (un peu plus complet que ton exemple actuel...)
- L'exemple de ce que tu veux en sorti (en utilisant les balises de code cette fois ) => je veux parler du résultat (de ton code actuel sur 4 niveaux...) dans ton navigateur (le code source généré )