„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie summiert man Werte gemeinsam genutzter Schlüssel beim Zusammenführen mehrerer assoziativer Arrays?

Wie summiert man Werte gemeinsam genutzter Schlüssel beim Zusammenführen mehrerer assoziativer Arrays?

Veröffentlicht am 04.11.2024
Durchsuche:256

How to Sum Values of Shared Keys When Merging Multiple Associative Arrays?

Zusammenführen mehrerer flacher assoziativer Arrays mit Summierung gemeinsamer Schlüssel

Beim Kombinieren assoziativer Arrays mit der Funktion array_merge() werden Werte mit gemeinsamen Schlüsseln verknüpft werden eher ersetzt als summiert. Dies stellt eine Herausforderung dar, wenn versucht wird, die Werte gemeinsam genutzter Schlüssel aus mehreren assoziativen Arrays hinzuzufügen.

Um diese Hürde zu überwinden, können mehrere Ansätze verfolgt werden:

  • Foreach-Iteration mit Fehlerunterdrückung:
$sums = array();
foreach (array_keys($a1   $a2) as $key) {
    $sums[$key] = (isset($a1[$key]) ? $a1[$key] : 0)   (isset($a2[$key]) ? $a2[$key] : 0);
}
  • Anonyme Zuordnung:
$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));
  • Kombinationslösung:
$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));
  • Benutzerdefinierte Funktion für eine beliebige Anzahl von Arrays:
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;
}

Diese Ansätze bieten flexible Lösungen zum Zusammenführen mehrerer assoziativer Arrays und zum Summieren der mit gemeinsam genutzten Schlüsseln verbundenen Werte.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3