Sie möchten die mit bestimmten Schlüsseln verbundenen Werte in einem mehrdimensionalen Array mit unterschiedlichen Schlüsselsätzen summieren. Betrachten Sie die folgende Eingabe:
Array ( [0] => Array ( [gozhi] => 2 [uzorong] => 1 [ngangla] => 4 [langthel] => 5 ) [1] => Array ( [gozhi] => 5 [uzorong] => 0 [ngangla] => 3 [langthel] => 2 ) [2] => Array ( [gozhi] => 3 [uzorong] => 0 [ngangla] => 1 [langthel] => 3 ) )
Das gewünschte Ergebnis ist:
Array ( [gozhi] => 10 [uzorong] => 1 [ngangla] => 8 [langthel] => 10 )
Um dies zu erreichen, berücksichtigen Sie die folgenden Ansätze:
Für eine allgemeine Falllösung verwenden Sie array_walk_recursive():
$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 (z. B. „gozhi“) verwenden Sie array_column() (verfügbar seit PHP 5.5):
array_sum(array_column($input, 'gozhi'));
Wenn alle inneren Arrays die haben gleiche Schlüssel:
$final = array_shift($input); foreach ($final as $key => &$value){ $value += array_sum(array_column($input, $key)); } unset($value);
Alle eindeutigen Schlüssel abrufen und dann für jeden summieren:
$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 PHP-Arrays?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!