Wie summiere ich Werte für gemeinsam genutzte Schlüssel beim Zusammenführen assoziativer Arrays?

Barbara Streisand
Freigeben: 2024-11-03 14:16:30
Original
167 Leute haben es durchsucht

How to Sum Values for Shared Keys When Merging Associative Arrays?

Arrays zusammenführen und gemeinsame Schlüsselwerte summieren

Oft besteht die Notwendigkeit, mehrere assoziative Arrays zusammenzuführen und gleichzeitig die mit gemeinsam genutzten Schlüsseln verknüpften Werte zu kombinieren. Standardmäßig werden beim Zusammenführen von Arrays widersprüchliche Werte überschrieben, wie im bereitgestellten Beispiel zu sehen ist. Um dieses Problem anzugehen, stellen wir eine Reihe von Ansätzen vor, die effektiv Werte für gemeinsam genutzte Schlüssel hinzufügen und gleichzeitig eindeutige Schlüssel beibehalten.

Verwendung von Array-Zwischenprodukten:

Ein Ansatz besteht darin, die zu berechnen Summe der Werte manuell mithilfe von Array-Zwischenprodukten. Dies beinhaltet das Durchlaufen der Schlüssel des zusammengeführten Arrays und das Summieren der Werte für jeden Schlüssel über die Eingabearrays hinweg.

$sums = array();
foreach (array_keys($a1 + $a2) as $key) {
    $sums[$key] = (isset($a1[$key]) ? $a1[$key] : 0) + (isset($a2[$key]) ? $a2[$key] : 0);
}
Nach dem Login kopieren

Zuordnung und Reduktion:

Eine andere Methode beinhaltet Erstellen von Zwischenarrays mit Nullwerten für jeden eindeutigen Schlüssel. Diese werden dann mit den ursprünglichen Arrays zusammengeführt und zugeordnet, um die Summen zu berechnen.

$keys = array_fill_keys(array_keys($a1 + $a2), 0);
$sums = array_map(function ($a1, $a2) { return $a1 + $a2; }, array_merge($keys, $a1), array_merge($keys, $a2));
Nach dem Login kopieren

Array-Walking:

Ähnlich können Sie Array-Walking verwenden, um die Summen zu berechnen für gemeinsame Schlüssel.

$sums = array_fill_keys(array_keys($a1 + $a2), 0);
array_walk($sums, function (&$value, $key, $arrs) { $value = @($arrs[0][$key] + $arrs[1][$key]); }, array($a1, $a2));
Nach dem Login kopieren

Wiederverwendbare Funktion mit dynamischen Parametern:

Schließlich können Sie eine wiederverwendbare Funktion erstellen, die eine unbegrenzte Anzahl von Arrays akzeptiert und die Summe berechnet von Werten für gemeinsam genutzte Schlüssel.

function array_sum_identical_keys() {
    $arrays = func_get_args();
    $keys = array_keys(array_reduce($arrays, function ($keys, $arr) { return $keys + $arr; }, array()));
    $sums = array();

    foreach ($keys as $key) {
        $sums[$key] = array_reduce($arrays, function ($sum, $arr) use ($key) { return $sum + @$arr[$key]; });
    }
    return $sums;
}
Nach dem Login kopieren

Diese Lösungen bieten effiziente Möglichkeiten, mehrere assoziative Arrays zusammenzuführen und die Summe der Werte für gemeinsam genutzte Schlüssel zu berechnen, was Flexibilität und Wiederverwendbarkeit des Codes für verschiedene Szenarien bietet.

Das obige ist der detaillierte Inhalt vonWie summiere ich Werte für gemeinsam genutzte Schlüssel beim Zusammenführen assoziativer Arrays?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!