Ik heb al tig keer een hierarchisch menu gemaakt in php en ook zelfs met dezelfde soort arrays als inputdata, maar dit keer gaat er iets fout en ik snap totaal niet wat.
Ik heb een input array als volgt:
Ik weet zeker dat de hele array klopt, daar zitten echt geen fouten in aangezien ik hem vaker gebruik.
Mijn PHP functie ziet er als volgt uit:
Ik echo $level ook om debugredenen. Wat ik nu krijg echter als output is het volgende:
Ik roep de functie eerst aan met printIconTree($icons, 1, 0) en zoals je ziet lopen de levels constant op terwijl de eerste 4 op 0 blijven.
Wat gaat hier fout??? Ik kom er echt niet meer op.
Ik heb een input array als volgt:
code:
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
| [27] => Array ( [id] => 27 [name] => Bouw- en Milieuzaken [nr] => 1 [parent] => 1 [function] => -1 [type] => Thema ) [532] => Array ( [id] => 532 [name] => Bouwvergunning [nr] => 1.1 [parent] => 27 [function] => 15 [type] => Hoofdproces ) [533] => Array ( [id] => 533 [name] => Bouwaanvragen [nr] => 1.1.1 [parent] => 532 [function] => 12 [type] => Proces ) etc.... |
Ik weet zeker dat de hele array klopt, daar zitten echt geen fouten in aangezien ik hem vaker gebruik.
Mijn PHP functie ziet er als volgt uit:
PHP:
1
2
3
4
5
6
7
8
| function printIconTree($icons,$pid,$level) { foreach($icons as $icon) { if($icon['parent']==$pid) { echo $level." - ".$icon['nr']." - ".$icon['name']."<br>"; printIconTree($icons, $icon['id'],$level++); } } } |
Ik echo $level ook om debugredenen. Wat ik nu krijg echter als output is het volgende:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| 0 - 1 - Bouw- en Milieuzaken 0 - 1.1 - Bouwvergunning 0 - 1.1.1 - Bouwaanvragen 0 - 1.1.1.1 - Bouwaanvraag 1 - 1.1.1.2 - Beoordelen bouwaanvraag 2 - 1.1.1.3 - Is er een schetsplan aanwezig? 3 - 1.1.1.4 - Conform schetsplan? 4 - 1.1.1.5 - Ontvangstbevestiging versturen en publiceren 5 - 1.1.1.6 - ontvangstbevestiging .....etc etc etc..... 14 - 1.1.1.15 - Procedure opstarten 15 - 1.1.1.16 - Ontvangsbevestiging sturen en publiceren 16 - 1.1.1.17 - Ontvangstbevestiging 17 - 1.1.1.18 - Toetsingsprocedure 1 - 1.1.2 - Toetsingsprocedure 1 - 1.1.2.1 - Bouwplan 2 - 1.1.2.2 - Ontvankelijkheid toetsen 3 - 1.1.2.3 - Gegevens voldoende? 4 - 1.1.2.4 - Toetsen bouwplan a.d.h.v. bestemminsplan 5 - 1.1.2.5 - Conform bestemmingsplan |
Ik roep de functie eerst aan met printIconTree($icons, 1, 0) en zoals je ziet lopen de levels constant op terwijl de eerste 4 op 0 blijven.
Wat gaat hier fout??? Ik kom er echt niet meer op.
Engineering is like Tetris. Succes disappears and errors accumulate.