Bonjour,
J'ai posté une question il y a quelques jours pour lire un tableau de manière récursive. On m'a suggéré d'utiliser Recursive iterator mais que je ne peux appliquer dans mon cas car les enfants ne sont pas de nouveaux tableaux (je ne peux pas modifier ça.)
Voici mon tableau à traiter :
Voici la fonction sur laquelle je bloque
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83 Array ( [0] => Array ( [Calcul] => Array ( [id] => 1 [nom] => Gros cacul maitre [comptes] => [order] => 0 [parent_id] => [groupe_id] => 3 [lft] => 1 [rght] => 8 ) [children] => Array ( [0] => Array ( [Calcul] => Array ( [id] => 2 [nom] => Calcul moyen 2 [comptes] => [order] => 0 [parent_id] => 1 [groupe_id] => 3 [lft] => 2 [rght] => 5 ) [children] => Array ( [0] => Array ( [Calcul] => Array ( [id] => 4 [nom] => Enfant du calcul moyen [comptes] => [order] => 0 [parent_id] => 2 [groupe_id] => 3 [lft] => 3 [rght] => 4 ) [children] => Array ( ) ) ) ) [1] => Array ( [Calcul] => Array ( [id] => 3 [nom] => Calcul moyen 2 encore [comptes] => [order] => 0 [parent_id] => 1 [groupe_id] => 3 [lft] => 6 [rght] => 7 ) [children] => Array ( ) ) ) ) )
La logique ne me semble pas loin d'être bonne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 function Childscalc($calculs, $newtab = array(), $child){ foreach($calculs as $i => $calcul){ echo $child.' <br />'; if($child == 'yes'){ $_SESSION['newtab'][$_SESSION['k']-1]['childs'][$_SESSION['j']]['nom'] = $calcul['Calcul']['nom']; $_SESSION['newtab'][$_SESSION['k']-1]['childs'][$_SESSION['j']]['comptes'] = $calcul['Calcul']['comptes']; $_SESSION['j']++; } else { $_SESSION['newtab'][$_SESSION['k']]['nom'] = $calcul['Calcul']['nom']; $_SESSION['newtab'][$_SESSION['k']]['comptes'] = $calcul['Calcul']['comptes']; $_SESSION['k']++; } if(!empty($calcul['children'])){ ['childs'] = array(); $_SESSION['childs'] = 'yes'; $this->Childscalc($calcul['children'], $_SESSION['newtab'], $_SESSION['childs']); unset($_SESSION['childs']); } else { $_SESSION['childs'] = 'no'; } } return $_SESSION['newtab']; }Mon problème vient du fait que je n'arrive pas à écrire correctement mon tableau... J'arrive à créer une premier niveaux pour les enfants et il faudrait que je puisse aller plus loins dans la récursivité... Si quelqu'un à une idée... Merci
Partager