Heim >Backend-Entwicklung >PHP-Tutorial >Wie summiert man Spaltenwerte in mehrdimensionalen PHP-Arrays effizient?
So summieren Sie Spaltenwerte in mehrdimensionalen Arrays
In mehrdimensionalen Arrays ist das Zusammenfassen von Werten entlang von Spalten eine häufige Aufgabe. So wird es gemacht, angesichts der Herausforderung dynamischer assoziativer Schlüsselsätze:
Allgemeine Falllösung mit array_walk_recursive
Mit array_walk_recursive können Sie Spalten unabhängig von der Schlüsselstruktur konsistent zusammenfassen :
$final = array(); array_walk_recursive($input, function($item, $key) use (&$final){ $final[$key] = isset($final[$key]) ? $item + $final[$key] : $item; });
array_column() für exakte Schlüssel
Ab PHP 5.5 können Sie array_column verwenden, um bestimmte Spalten effizient zusammenzufassen:
array_sum(array_column($input, 'gozhi')); // For 'gozhi' column
Gesamtsumme für alle Schlüsselsätze
Wenn Sie die Gesamtsumme aller inneren Arrays mit passenden Schlüsseln (wie in der gewünschten Ausgabe) wünschen, verwenden Sie dies Ansatz:
$final = array_shift($input); foreach ($final as $key => &$value){ $value += array_sum(array_column($input, $key)); } unset($value);
Allgemeine Lösung mit array_column
Ein fortgeschrittenerer Ansatz mit array_column beinhaltet die Identifizierung aller eindeutigen Schlüssel und die anschließende Zusammenfassung:
$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 summiert man Spaltenwerte in mehrdimensionalen PHP-Arrays effizient?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!