Heim >Backend-Entwicklung >PHP-Tutorial >Wie summiere ich Spaltenwerte in mehrdimensionalen Arrays mit dynamischen Schlüsseln in PHP?

Wie summiere ich Spaltenwerte in mehrdimensionalen Arrays mit dynamischen Schlüsseln in PHP?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-16 22:03:111050Durchsuche

How to Sum Column Values in Multi-Dimensional Arrays with Dynamic Keys in PHP?

Spaltenwerte in mehrdimensionalen Arrays summieren

Frage:

Wie können Sie berechnen? die Summe der Spaltenwerte in einem mehrdimensionalen Array, in dem sich die assoziativen Schlüssel befinden dynamisch?

Antwort:

Um Spaltenwerte in einem mehrdimensionalen Array mit dynamischen Schlüsseln zu summieren, können Sie array_walk_recursive() verwenden. Es bietet eine allgemeine Lösung für Fälle, in denen jedes innere Array eindeutige Schlüssel hat.

$final = array();

array_walk_recursive($input, function($item, $key) use (&$final){
    $final[$key] = isset($final[$key]) ?  $item + $final[$key] : $item;
});

Für bestimmte Schlüssel ist array_column() eine geeignete Option, verfügbar seit PHP 5.5.

array_sum(array_column($input, 'gozhi')); // for key 'gozhi'

Um die Gesamtsumme der Spalten mit denselben Schlüsseln zu erhalten, können Sie das erste innere Array als Basis extrahieren und die Werte für jeden Schlüssel mit summieren array_column() und fügen Sie sie zur Basis hinzu:

$final = array_shift($input);

foreach ($final as $key => &$value){
   $value += array_sum(array_column($input, $key));
}    

unset($value);

Für eine allgemeine Lösung mit array_column() sollten Sie zunächst alle eindeutigen Schlüssel abrufen und dann berechnen die Summe für jeden:

$final = array();

foreach($input as $value)
    $final = array_merge($final, $value);

foreach($final as $key => &$value)
    $value = array_sum(array_column($input, $key));

unset($value);

Das obige ist der detaillierte Inhalt vonWie summiere ich Spaltenwerte in mehrdimensionalen Arrays mit dynamischen Schlüsseln in PHP?. 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