如何對多維數組中的列值求和
在多維數組中,沿列匯總值是一項常見任務。考慮到動態關聯鍵集的挑戰,它是如何完成的:
使用 array_walk_recursive 的一般情況解決方案
使用array_walk_recursive,您可以一致地匯總列,無論鍵如何結構:
$final = array(); array_walk_recursive($input, function($item, $key) use (&$final){ $final[$key] = isset($final[$key]) ? $item + $final[$key] : $item; });
array_column() for Exact Keys
從PHP 5.5 開始,您可以使用有效率地匯總特定欄位:
array_sum(array_column($input, 'gozhi')); // For 'gozhi' column
所有金鑰的總和集合
如果您想要具有匹配鍵的所有內部數組的總和(如所需的輸出),請使用以下方法:
$final = array_shift($input); foreach ($final as $key => &$value){ $value += array_sum(array_column($input, $key)); } unset($value);
一般情況使用array_column的解決方案
使用 array_column 的更高級方法包括識別所有唯一鍵,然後總結:
$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);
以上是如何有效率地對多維 PHP 數組中的列值求和?的詳細內容。更多資訊請關注PHP中文網其他相關文章!