Rekenen met twee of meer array's
Ben bezig met een simpel (dacht ik) vergelijk te maken, echt snap ik er toch niet zo heel veel van.
Er worden twee array's gecreëerd, deze moeten naast elkaar weergegeven worden, echter als er in een array meerdere weken zitten moet daar het gemiddelde berekend van worden.
In het voorbeeld heb ik in Array 1 twee weken zitten en in Array 2 zit een week.
Deel van Array 1:
Code (php)
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
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
[139] => Array
(
[id] => 140
[prodcut] => Doritos Jacked Red Rebel 165 g
[verkocht] => 66,35
[strikerate] => 0,01
[weeknr] => 1
[jaar] => 2014
)
[140] => Array
(
[id] => 141
[prodcut] => Lays Naturel Chips 120 gr
[verkocht] => 75,16
[strikerate] => 0,92
[weeknr] => 1
[jaar] => 2014
)
[141] => Array
(
[id] => 142
[prodcut] => Bugles Nacho Cheese 100 gr
[verkocht] => 67,66
[strikerate] => 0,93
[weeknr] => 1
[jaar] => 2014
)
....
[314] => Array
(
[id] => 315
[naam] => Maltesers 175 gr
[verkocht] => 56,07
[strikerate] => 0,98
[weeknr] => 2
[jaar] => 2014
)
[315] => Array
(
[id] => 316
[naam] => Twix
[verkocht] => 60,22
[strikerate] => 0,60
[weeknr] => 2
[jaar] => 2014
)
[316] => Array
(
[id] => 317
[naam] => Choclait Chips 135 gr
[verkocht] => 56,77
[strikerate] => 0,29
[weeknr] => 2
[jaar] => 2014
)
(
[id] => 140
[prodcut] => Doritos Jacked Red Rebel 165 g
[verkocht] => 66,35
[strikerate] => 0,01
[weeknr] => 1
[jaar] => 2014
)
[140] => Array
(
[id] => 141
[prodcut] => Lays Naturel Chips 120 gr
[verkocht] => 75,16
[strikerate] => 0,92
[weeknr] => 1
[jaar] => 2014
)
[141] => Array
(
[id] => 142
[prodcut] => Bugles Nacho Cheese 100 gr
[verkocht] => 67,66
[strikerate] => 0,93
[weeknr] => 1
[jaar] => 2014
)
....
[314] => Array
(
[id] => 315
[naam] => Maltesers 175 gr
[verkocht] => 56,07
[strikerate] => 0,98
[weeknr] => 2
[jaar] => 2014
)
[315] => Array
(
[id] => 316
[naam] => Twix
[verkocht] => 60,22
[strikerate] => 0,60
[weeknr] => 2
[jaar] => 2014
)
[316] => Array
(
[id] => 317
[naam] => Choclait Chips 135 gr
[verkocht] => 56,77
[strikerate] => 0,29
[weeknr] => 2
[jaar] => 2014
)
Deel van Array 2:
Code (php)
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
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
[143] => Array
(
[id] => 472
[prodcut] => Bugles Nacho Cheese 100 gr
[verkocht] => 130
[strikerate] => 2,79
[weeknr] => 3
[jaar] => 2014
)
[144] => Array
(
[id] => 473
[prodcut] => Lays Paprika Chips 120 gr
[verkocht] => 213
[strikerate] => 4,58
[weeknr] => 3
[jaar] => 2014
)
[145] => Array
(
[id] => 474
[prodcut] => Hamka's 80 gr
[verkocht] => 89
[strikerate] => 1,91
[weeknr] => 3
[jaar] => 2014
)
(
[id] => 472
[prodcut] => Bugles Nacho Cheese 100 gr
[verkocht] => 130
[strikerate] => 2,79
[weeknr] => 3
[jaar] => 2014
)
[144] => Array
(
[id] => 473
[prodcut] => Lays Paprika Chips 120 gr
[verkocht] => 213
[strikerate] => 4,58
[weeknr] => 3
[jaar] => 2014
)
[145] => Array
(
[id] => 474
[prodcut] => Hamka's 80 gr
[verkocht] => 89
[strikerate] => 1,91
[weeknr] => 3
[jaar] => 2014
)
Ik wil dus:
1. Checken op aantal weken in een array. Als dit bijvoorbeeld 4 is, dan ALS product het zelfde is alle waarde optellen en delen door 4.
Wie kan mij de goede richting in helpen.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
$arr = array( /* jouw array */ );
$weken = array();
foreach($arr as $item)
{
$weeknr = $item['weeknr'];
if(isset($weken[$weeknr]))
$weken[$weeknr]['aantal']++;
$weken[$weeknr]['verkocht'] += $item['verkocht'];
else
{
$weken[$weeknr] = array(
'aantal' => 1,
'verkocht' => $item['verkocht']
);
}
}
echo '<pre>';
print_r($weken);
echo '</pre>';
?>
$arr = array( /* jouw array */ );
$weken = array();
foreach($arr as $item)
{
$weeknr = $item['weeknr'];
if(isset($weken[$weeknr]))
$weken[$weeknr]['aantal']++;
$weken[$weeknr]['verkocht'] += $item['verkocht'];
else
{
$weken[$weeknr] = array(
'aantal' => 1,
'verkocht' => $item['verkocht']
);
}
}
echo '<pre>';
print_r($weken);
echo '</pre>';
?>
Toevoeging op 16/02/2014 12:01:31:
Het gaat echter niet werken want je hebt in je array de bedragen genoteerd met een komma en dus ziet de computer het als tekst en dus kun je er niet mee rekenen. Je zult de bedragen in de array moeten noteren met een decimale punt. voorbeelden:
Gewijzigd op 16/02/2014 12:01:49 door Frank Nietbelangrijk
Sorry dat ik niet helemaal duidelijk ben geweest.
In array1 zitten twee weken. Hierin komen dus twee keer Bugles Nacho Cheese 100 gr in voor. deze moet die dan op tellen en delen door twee aangezien het twee weken zijn.
Vervolgens gaat array2 dit ook doen, maar array twee is maar een weet en kan die de data daar direct uitpakken.
En het eindelijke overzicht zie ik dan het volgende:
<table>
<th>Prodcut</th><th>Eerste selectie - Stikerate</th><th> Twee selectie - Strikerate </th> <th>Verschil</th>
<tr>
<td>Bugles Nacho Cheese 100 gr<td>
<td>7.9</td>
<td>7.5</td>
<td>0.2</td>
</tr>
</table>
over de punten en komma's heb je helemaal gelijk, echter komt het zo uit het systeem. Ik vervang straks alle komma's met punten :)
Gewijzigd op 16/02/2014 16:04:04 door Hugo L
in de door jouw gegeven array1 komt maar één keer Bugles Nacho Cheese 100 gr voor.