Slå sammen 2 array

kongen

kongemedlem
Hvis jeg har 2 arrayer, noen keys er likedan og noen forskjellig, hvordan kan jeg slå sammen arrayene til en array?

PHP:
$ocurrances = array(bolle=>5, krem=>2, rosiner=>1);
$ocurrances2 = array(bolle=>3, rosiner=>2, sukker=>2, sardiner=>1);

Slik an den sammenlagte arrayen blir

PHP:
$ocurrances3 = array(bolle=>8, rosiner=>3, krem=>2, sukker=>2, sardiner=>1);

array_merge() ser ikke ut til å virke. Den legger ikke sammen verdiene av key bolle til 8, men bruker verdien fra siste array som er 3.
 

xdex

Medlem
Kan du ikke lage en loop? Litt avhengig av hvordan innholdet (value) i en array er. Dersom det alltid skal gi pluss, er det enda enklere. Men du kan jo lage løsninger basert på hva du ønsker. Array_merge er ment for å slå noe sammen, ikke kalkulere noe. Derfor må du gjøre litt arbeid selv, for at dette skal fungere. Syntes det er litt synd og bare gi deg løsningen her (som jeg har gjort mange ganger før) så velger og forklare deg hva du kan gjøre.

Først sjekker du om du har en KEY med samme navn, i en annen array. I ditt eksempel vil BOLLE eksistere i begge matrisene. Du kan bruke array_key_exists for å søke i en annen matrise (array på norsk). Dersom denne eksisterer kan du oppdatere din matrise, ved å plusse sammen disse to, og legge til i en ny matrise, eller oppdatere den eksisterende.

Bolle fra $ocurrances inneholder 5, Bolle eksisterer i $ocurrances2, legg sammen bolle fra $ocurrances og $ocurrances2, og lagre dette i $sum. Lag $ocurrances3 og legg til $ocurrances3['bolle'] = $sum. Dette blir det samme som å bruke array_push.

Det er alltid lettere å lære hvis du må lage/se løsningen selv :)

Happy coding! ;)
 
Topp