Heim  >  Artikel  >  Backend-Entwicklung  >  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?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-09 18:08:02593Durchsuche

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, kann man mehrere Ansätze verfolgen:

  • Foreach-Iteration mit Fehlerunterdrückung:
<code class="php">$sums = array();
foreach (array_keys($a1 + $a2) as $key) {
    $sums[$key] = (isset($a1[$key]) ? $a1[$key] : 0) + (isset($a2[$key]) ? $a2[$key] : 0);
}</code>
  • Anonyme Zuordnung:
<code class="php">$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));</code>
  • Kombinative Lösung :
<code class="php">$sums = array_fill_keys(array_keys($a1 + $a2), 0);
array_walk($sums, function (&amp;$value, $key, $arrs) { $value = @($arrs[0][$key] + $arrs[1][$key]); }, array($a1, $a2));</code>
  • Benutzerdefinierte Funktion für eine beliebige Anzahl von Arrays:
<code class="php">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;
}</code>

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

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

Stellungnahme:
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