Beste tweakers,
Voor het maken van een budgetoverzicht met verschillende niveau's (boomstructuur), wil ik vanuit het diepste niveau in een array de subtotalen berekenen voor de bovenliggende niveau's.
Hiervoor maak ik gebruik van een Adjacency List, waarbij ik de gegevens inclusief parent id heb opgeslagen in een database.
Een voorbeeld van deze boomstructuur met bijbehorende array is:
Hoofdpost
--Subpost 1
------Subpost 2 (bedrag: 50)
------Subpost 3 (bedrag: 10)
------Subpost 4 (bedrag: 10)
--Subpost 5
------Subpost 6
----------Subpost 7
--------------Subpost 8 (bedrag: 10)
--------------Subpost 9 (bedrag: 20)
----------Subpost 10 (bedrag 10)
De bijbehorende array:
Wat ik dus wil bereiken is dat ie op alle niveau's de subtotalen berekend. Dus als volgt:
Hoofdpost (bedrag: 110)
--Subpost 1 (bedrag: 70)
------Subpost 2 (bedrag: 50)
------Subpost 3 (bedrag: 10)
------Subpost 4 (bedrag: 10)
--Subpost 5 (bedrag: 40)
------Subpost 6 (bedrag: 40)
----------Subpost 7 (bedrag: 30)
--------------Subpost 8 (bedrag: 10)
--------------Subpost 9 (bedrag: 20)
----------Subpost 10 (bedrag 10)
Weet iemand hoe ik bovenstaande kan bereiken? Ik heb namelijk geen idee hoe je in omgekeerde volgorde een nested array kan doorlopen om zodoende de bovenliggende totalen te bereken.
Of zijn er betere methodes om een boomstructuur te krijgen waarin de subtotalen zijn berekend?
Voor het maken van een budgetoverzicht met verschillende niveau's (boomstructuur), wil ik vanuit het diepste niveau in een array de subtotalen berekenen voor de bovenliggende niveau's.
Hiervoor maak ik gebruik van een Adjacency List, waarbij ik de gegevens inclusief parent id heb opgeslagen in een database.
Een voorbeeld van deze boomstructuur met bijbehorende array is:
Hoofdpost
--Subpost 1
------Subpost 2 (bedrag: 50)
------Subpost 3 (bedrag: 10)
------Subpost 4 (bedrag: 10)
--Subpost 5
------Subpost 6
----------Subpost 7
--------------Subpost 8 (bedrag: 10)
--------------Subpost 9 (bedrag: 20)
----------Subpost 10 (bedrag 10)
De bijbehorende array:
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
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
84
85
| Array ( [0] => Array ( [titel] => Hoofdpost [bedrag] => [children] => Array ( [0] => Array ( [titel] => Subpost1 [bedrag] => [children] => Array ( [0] => Array ( [titel] => Subpost2 [bedrag] => 50 ) [1] => Array ( [titel] => Subpost3 [bedrag] => 10 ) [2] => Array ( [titel] => Subpost4 [bedrag] => 20 ) ) ) [1] => Array ( [titel] => Subpost5 [bedrag] => [children] => Array ( [0] => Array ( [titel] => Subpost6 [bedrag] => [children] => Array ( [0] => Array ( [titel] => Subpost7 [bedrag] => [children] => Array ( [titel] => Subpost8 [bedrag] => 10 ) [0] => Array ( [titel] => Subpost9 [bedrag] => 20 ) ) [1] => Array ( [titel] => Subpost10 [bedrag] => 10 ) ) ) ) ) ) ) ) |
Wat ik dus wil bereiken is dat ie op alle niveau's de subtotalen berekend. Dus als volgt:
Hoofdpost (bedrag: 110)
--Subpost 1 (bedrag: 70)
------Subpost 2 (bedrag: 50)
------Subpost 3 (bedrag: 10)
------Subpost 4 (bedrag: 10)
--Subpost 5 (bedrag: 40)
------Subpost 6 (bedrag: 40)
----------Subpost 7 (bedrag: 30)
--------------Subpost 8 (bedrag: 10)
--------------Subpost 9 (bedrag: 20)
----------Subpost 10 (bedrag 10)
Weet iemand hoe ik bovenstaande kan bereiken? Ik heb namelijk geen idee hoe je in omgekeerde volgorde een nested array kan doorlopen om zodoende de bovenliggende totalen te bereken.
Of zijn er betere methodes om een boomstructuur te krijgen waarin de subtotalen zijn berekend?