Heim >Backend-Entwicklung >PHP-Tutorial >Wie werden Werte gemeinsam genutzter Schlüssel in flachen assoziativen Arrays zusammengeführt und summiert?
Werte in flachen assoziativen Arrays zusammenführen und summieren
Problem:
Sie haben mehrere flache assoziative Arrays und möchten diese zusammenführen und dabei die mit übereinstimmenden Schlüsseln verknüpften Werte addieren, ohne vorhandene Werte zu überschreiben. Die Standardfunktion array_merge() sowie eine einfache Additionsoperation liefern nicht das gewünschte Verhalten.
Lösung:
Um assoziative Arrays zusammenzuführen und die Werte zu summieren Für die Erstellung gemeinsamer Schlüssel können Sie einen der folgenden Ansätze verwenden:
1. Schleife über die kombinierten Schlüssel:
<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>
Dieser Ansatz durchläuft die Schlüssel der kombinierten Arrays und akkumuliert die Werte für jeden Schlüssel im $sums-Array.
2. Zuordnung verwenden:
<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>
Hier erstellen wir ein Array mit allen eindeutigen Schlüsseln aus den Eingabearrays und verwenden dann array_map(), um eine Funktion zuzuordnen, die die mit jedem Schlüssel in verknüpften Werte summiert Arrays.
3. Hilfsfunktion:
Wenn Sie diesen Vorgang häufig ausführen müssen, können Sie eine Hilfsfunktion erstellen:
<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 Funktion akzeptiert eine beliebige Anzahl von Arrays und summiert die Werte von Shared Schlüssel in ein neues Array.
Mit einem dieser Ansätze können Sie die Werte gemeinsam genutzter Schlüssel in flachen assoziativen Arrays zusammenführen und summieren, was zum gewünschten Verhalten führt.
Das obige ist der detaillierte Inhalt vonWie werden Werte gemeinsam genutzter Schlüssel in flachen assoziativen Arrays zusammengeführt und summiert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!