Heim  >  Artikel  >  Backend-Entwicklung  >  Wie füge ich assoziative Arrays mit summierten Werten für gemeinsam genutzte Schlüssel zusammen?

Wie füge ich assoziative Arrays mit summierten Werten für gemeinsam genutzte Schlüssel zusammen?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-04 12:14:29515Durchsuche

How to Merge Associative Arrays with Summed Values for Shared Keys?

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!

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