如何计算多维数组中的列总计
考虑一个多维数组,其中元素按行和列排列,但按键集可能会动态变化。任务是计算每列中值的总和,无论键的变化如何。
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方法
如果需要对特定键值求和,可以使用 array_column():
array_sum(array_column($input, 'gozhi')); // Sums the 'gozhi' column
对于统一内部数组
如果所有内部数组的key相同,则获取初始key结构:
$final = array_shift($input); foreach ($final as $key => &$value){ $value += array_sum(array_column($input, $key)); } unset($value);
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中文网其他相关文章!