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:
<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>
<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>
<code class="php">$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));</code>
<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!