joebuz
-
13 juin 2017 à 00:01
jordane45
Messages postés37738Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention 3 octobre 2023
-
13 juin 2017 à 23:03
Bonjour,
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
merci
jordane45
Messages postés37738Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention 3 octobre 2023342 13 juin 2017 à 23:03
Je n'ai pas la tête à lire tout ton code (surtout que tu ne l'as pas mis via les balises de code......)..
Mais donc.. il te faut du récursif ...
En général... on class un array hierarchique par l'ID de l'élémént et l'ID parent .... par juste par niveau...
Je pense qu'un retraitement de ton array ne serait pas superflu pour le remettre en forme avant d'attaquer l'affichage pour obtenir un truc du genre
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é )