PHP array op nette manier uitlezen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Piet Knaap

Piet Knaap

22/06/2017 13:55:43
Quote Anchor link
Huidig_Array
Array (
[1] => Array ( [WEEK] => 201724 [AANTAL] => 4004 [POTTEN] => 22 [TYPE] => 390 )
[2] => Array ( [WEEK] => 201724 [AANTAL] => 96690 [POTTEN] => 551[TYPE] => 390 )
[3] => Array ( [WEEK] => 201724 [AANTAL] => 780 [POTTEN] => 4 [TYPE] => 240 )
[4] => Array ( [WEEK] => 201724 [AANTAL] => 33720 [POTTEN] => 141 [TYPE] => 240 )
[5] => Array ( [WEEK] => 201724 [AANTAL] => 12250 [POTTEN] => 118 [TYPE] => 104 )
)

Nieuw_Array
Array (
[1] => Array ( [WEEK] => 201724 [AANTAL] => 100694 [POTTEN] => 573 [TYPE] => 390 )
[2] => Array ( [WEEK] => 201724 [AANTAL] => 34500 [POTTEN] => 145 [TYPE] => 240 )
[3] => Array ( [WEEK] => 201724 [AANTAL] => 12250 [POTTEN] => 118 [TYPE] => 104 )
)

Ik ben bezig met een PHP pagina. Ik krijg nu de output van Huidig_Array

Wat ik wil is dat het Nieuw_Array alleen regels bevat waarbij AANTAL en POTTEN is opgeteld als het TYPE gelijk is. Zie bovenstaande voorbeeld. Dat ik dus geen 5 regels terug krijg maar nog maar 3

Nu zou ik twee keer via een foreach het Huidig_Array kunnen uitlezen. Eerste keer om alle type te bepalen en dan de tweede keer de waardes op te tellen. Is niet de beste (zeker niet de netste) manier.

Hoe kan dit mooier/netter. Is het überhaupt mogelijk?
- Ariën -:
Titel aangepast van 'php array' naar 'PHP array op nette manier uitlezen'.
gelieve in het vervolg een duidelijke titel mee te geven die de probleem of vraagstelling in korte lijnen omschrijft.
Gewijzigd op 23/06/2017 13:58:57 door - Ariën -
 
PHP hulp

PHP hulp

25/12/2024 18:19:37
 
Gerhard l

gerhard l

23/06/2017 11:42:11
Quote Anchor link
Je zou dit met 1 foreach kunnen oplossen, waarin je de 'type' als index gebruikt om te kijken of je de waardes moet toevoegen, of erbij op moet tellen.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
$aNew = [];
foreach($aHuidig AS $aRow)
{
    if(isset($aNew[$aRow['type']]))
    {
        $aNew[$aRow['type']]['aantal'] += $aRow['aantal'];
        $aNew[$aRow['type']]['potten'] += $aRow['potten'];
    }
    else
        $aNew[$aRow['type']] = $aRow;
}
 
Piet Knaap

Piet Knaap

26/06/2017 14:14:36
Quote Anchor link
Na wat ombouwen van jouw code en wat eigen creativiteit is het gelukt. Bedankt Gerhard I
 



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.