Heim > Artikel > Backend-Entwicklung > Wie füge ich assoziative Arrays mit summierten Werten für gemeinsam genutzte Schlüssel zusammen?
Assoziative Arrays mit summierten Werten für gemeinsam genutzte Schlüssel zusammenführen
Das Zusammenführen mehrerer assoziativer Arrays bei gleichzeitiger Kombination von Werten für gemeinsam genutzte Schlüssel kann eine häufige, aber herausfordernde Aufgabe sein . In diesem Artikel werden mehrere Lösungen zur Behebung dieses Problems vorgestellt.
Array-Zusammenführung mit Summation
Das Ziel besteht darin, zwei oder mehr flache assoziative Arrays (Arrays mit Zeichenfolgenschlüsseln und nicht) zusammenzuführen -Array-Werte) und summieren Sie die Werte, die identischen Schlüsseln zugeordnet sind. Dies unterscheidet sich vom Standardverhalten der Funktion array_merge(), die Werte für doppelte Schlüssel ersetzt.
Beispiele
Betrachten Sie das folgende Beispiel:
<code class="php">$a1 = array("a" => 2, "b" => 0, "c" => 5); $a2 = array("a" => 3, "b" => 9, "c" => 7, "d" => 10);</code>
Wenn wir array_merge() verwenden würden, um diese Arrays zu kombinieren, wäre das Ergebnis:
<code class="php">$a3 = array_merge($a1, $a2); print_r($a3); </code>
Ausgabe:
Array ( [a] => 3 [b] => 9 [c] => 7 [d] => 10 )
Wie Sie sehen können, sind die Werte für gemeinsam genutzte Schlüssel ( „a“, „b“, „c“) werden nicht summiert, sondern ersetzt.
Benutzerdefinierte Lösungen
Um das gewünschte Ergebnis zu erzielen, können wir eine benutzerdefinierte Funktion verwenden das die Schlüssel der kombinierten Arrays durchläuft und die Werte für gemeinsam genutzte Schlüssel summiert. Hier ist eine solche Implementierung:
<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>
Ausgabe:
<code class="php">Array ( [a] => 5 [b] => 9 [c] => 12 [d] => 10 )</code>
Diese Funktion ermöglicht es uns, mehrere Arrays mit gemeinsamen Schlüsseln zusammenzuführen und stellt die summierten Werte für diese Schlüssel bereit.
Das obige ist der detaillierte Inhalt vonWie füge ich assoziative Arrays mit summierten Werten für gemeinsam genutzte Schlüssel zusammen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!