Heim > Backend-Entwicklung > PHP-Tutorial > Wie werden Werte gemeinsam genutzter Schlüssel in flachen assoziativen Arrays zusammengeführt und summiert?

Wie werden Werte gemeinsam genutzter Schlüssel in flachen assoziativen Arrays zusammengeführt und summiert?

Patricia Arquette
Freigeben: 2024-11-03 19:12:03
Original
725 Leute haben es durchsucht

How to Merge and Sum Values of Shared Keys in Flat Associative Arrays?

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage