Rekenen met twee of meer array's

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Hugo L

Hugo L

16/02/2014 10:29:35
Quote Anchor link
Beste,

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)
PHP script in nieuw venster Selecteer het PHP script
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
    [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
        )


Deel van Array 2:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
    [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
        )


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.
 
PHP hulp

PHP hulp

22/12/2024 08:46:50
 
Frank Nietbelangrijk

Frank Nietbelangrijk

16/02/2014 11:41:28
Quote Anchor link
De oplossing is hier een foreach waarin een nieuwe array wordt gemaakt. Ik neem jouw eerste array als voorbeeld en die is opgeslagen in de variabele $arr.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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>';
?>


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:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
7
7.
7.4
7.49
Gewijzigd op 16/02/2014 12:01:49 door Frank Nietbelangrijk
 
Hugo L

Hugo L

16/02/2014 16:00:22
Quote Anchor link
Bedankt voor je antwoord, maar dit is eigenlijk niet wat ik bedoel.
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
 
Frank Nietbelangrijk

Frank Nietbelangrijk

16/02/2014 23:19:48
Quote Anchor link
in de door jouw gegeven array1 komt maar één keer Bugles Nacho Cheese 100 gr voor.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.