PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [Php] Arrays zusammenfügen...


Gast
2007-05-16, 01:25:47
Hi,
wie kann man am einfachsten diese 2 Arrays:

$array01 = array('a' => 5, 'b' => 3, 'c' => 12);
$array02 = array('a' => 2, 'b' => 1, 'x' => 100);

so verbinden, dass die Werte dabei zusammengezählt werden und das Ergebnis folgendermassen aussieht:
$array03 = array('a' => 7, 'b' => 4, 'c' => 12, 'x' => 100);

danke

Nagelbrett
2007-05-16, 01:37:47
spontan würde ich sagen:

$array03 = array01;
foreach($array02 as $k => $v) {
$array03[$k] += $v;
}

darph
2007-05-16, 09:22:45
spontan würde ich sagen:

$array03 = array01;
foreach($array02 as $k => $v) {
$array03[$k] += $v;
}
Sind $k nicht die numerischen Schlüssel? Dann wäre hier c = x

Nagelbrett
2007-05-16, 15:07:49
Öhm, nein eigentlich nicht. $k sind die key names und $v sind die values.

Der Code funktioniert jedenfalls so ;)

Gast
2007-05-16, 15:14:18
hä das würd mich aber wundern wenn der so funktioniert.

vielleicht solltest du dir nochmal das gewünschte ergebnis angucken.

Nagelbrett
2007-05-16, 15:20:00
hä das würd mich aber wundern wenn der so funktioniert.

vielleicht solltest du dir nochmal das gewünschte ergebnis angucken.

...
na dann wunder dich mal.

$array01 = array('a' => 5, 'b' => 3, 'c' => 12);
$array02 = array('a' => 2, 'b' => 1, 'x' => 100);

$array03 = $array01;
foreach($array02 as $k => $v) {
$array03[$k] += $v;
}

var_dump($array03);
liefert:
array(4) { ["a"]=> int(7) ["b"]=> int(4) ["c"]=> int(12) ["x"]=> int(100) }
genau das, was der Threadersteller wollte.

Gast
2007-05-16, 15:30:15
:eek:

creave
2007-05-16, 21:55:50
Was Nagelbrett sagt stimmt schon:

foreach (array_expression as $key => $value) Anweisung

darph
2007-05-16, 22:17:50
nagut. :)