Heim >Backend-Entwicklung >PHP-Tutorial >Wie füge ich mehrere assoziative Arrays und Summenwerte gemeinsamer Schlüssel in PHP zusammen?
Wie Sie vielleicht schon bemerkt haben, ist das integrierte array_merge( )-Funktion in PHP überschreibt die Werte gemeinsam genutzter Schlüssel, wenn mehrere Arrays kombiniert werden. Dies kann problematisch sein, wenn Sie Arrays zusammenführen und stattdessen die Werte gemeinsamer Schlüssel summieren müssen.
Um dieser Herausforderung zu begegnen, können wir eine benutzerdefinierte Funktion erstellen oder Array-Operationen nutzen, um dies zu erreichen unser gewünschtes Verhalten. Lassen Sie uns einige mögliche Ansätze untersuchen:
Verwenden einer benutzerdefinierten Funktion
<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 als Argumente und gibt mit der Kombination ein assoziatives Array zurück Schlüssel und summierte Werte.
Fehlerunterdrückung verwenden
<code class="php">$sums = array(); foreach (array_keys($a1 + $a2) as $key) { $sums[$key] = @($a1[$key] + $a2[$key]); }</code>
Diese Technik nutzt den Fehlerunterdrückungsoperator (@), um zuvor in beiden Arrays auf das Vorhandensein von Schlüsseln zu prüfen Durchführen der Addition.
Verwenden von Array-Zuordnungen
<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>
Dieser Ansatz erstellt eine Zuordnung mit array_fill_keys() und verwendet dann array_map(), um die damit verbundenen Werte hinzuzufügen Gemeinsame Schlüssel.
Lösungen kombinieren
<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>
Diese Kombination kombiniert die Fehlerunterdrückungstechnik mit array_walk(), um über die Schlüssel zu iterieren und die Addition durchzuführen.
Fazit
Abhängig von Ihren spezifischen Anforderungen können Sie die am besten geeignete Methode zum Zusammenführen mehrerer Arrays und zum Summieren der Werte gemeinsamer Schlüssel auswählen. Unabhängig davon, ob es sich um die Verwendung einer benutzerdefinierten Funktion, Fehlerunterdrückung, Array-Zuordnungen oder einer Kombination davon handelt, bieten diese Lösungen eine präzise und effektive Möglichkeit, das gewünschte Ergebnis zu erzielen.
Das obige ist der detaillierte Inhalt vonWie füge ich mehrere assoziative Arrays und Summenwerte gemeinsamer Schlüssel in PHP zusammen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!