• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Multidimensionales Array - Werte zweiter ebene Addieren

Splitt3r

New member
Hallo ich stehe vor einem Problem, ich habe folgendes array:

PHP:
Array
(
    [datensatz1] => Array
        (
            [Wert1] => 0
            [Wert2] => 333
            [Wert3] => 167
        )

    [datensatz2] => Array
        (
            [Wert1] => 334
            [Wert2] => 0
            [Wert3] => 166
        )

)

Jetzt möchte ich die gleichen keys in der zweiten Ebene gruppieren und die Werte summieren, sodass dieses array herauskommt:

PHP:
Array
(
            [Wert1] => 334
            [Wert2] => 333
            [Wert3] => 333
)

Ich stehe einfach absolut auf dem Schlauch und kenne des rätsels Lösung nicht. Über Google habe ich einen Lösungsansatz gefunden, allerdings mit einer Ebene weniger:
PHP:
$ergebnisarray=array();
foreach(array_merge(array_keys($array1),array_keys($array2)) as $key) $ergebnisarray[$key]=$array1[$key]+$array2[$key];

Ich würde mich riesig freuen wenn jemand von euch die Lösung kennt.

Viele Grüße
 
wie kommst du denn bitte von datensatz1 und/oder datensatz2 auf das Endergebnis? soll aus datensatz1 und datensatz2 eine gemeinsame Menge werden? oder sollen die jeweils einzeln sortiert werden? und in deiner Lösung hast du dann auf einmal $array1 und $array2... wer soll denn da noch verstehen was du eigentlich willst? :p
 
Ich geb zu das ist nicht leicht zu verstehen :)

zweiter versuch:

Im Prinzip möchte ich in einem Multidimensionalen array() Alle Werte addieren dessen Keys gleich sind.

Mit array_unique kann ich zb. alle doppelten keys löschen sodass nur noch ein wert1, ein wert2 und ein wert3 existiert, dann habe ich aber das Problem, dass die Werte nicht addiert werden.

In meiner Frage sieht man ja zuerst wie mein array aufgebaut wird, und dann was ich als ergebnis haben möchte. Im prinzip kann das array auch aus X-beliebigen "Datensätzen" bestehen dessen werte alle samt immer ein array mit den keys wert1, wert2 und wert3 darstellt.
 
wie kommst du denn bitte von datensatz1 und/oder datensatz2 auf das Endergebnis? soll aus datensatz1 und datensatz2 eine gemeinsame Menge werden? oder sollen die jeweils einzeln sortiert werden? und in deiner Lösung hast du dann auf einmal $array1 und $array2... wer soll denn da noch verstehen was du eigentlich willst? :p

Er will aus seinem ersten beschriebenen Array den zweiten beschriebenen Array machen, bei dem die Werte der identischen Schlüssel addiert werden.
 
Zuletzt bearbeitet:
PHP:
$values = array();
foreach($array AS $group) {
    foreach($group AS $key => $value) {
        if(!isset($values[$key])) $values[$key] = $value;
        else $values[$key] += $value;
    }
}
 
Zurück
Oben