您的目标是对具有不同键集的多维数组中特定键关联的值求和。考虑以下输入:
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 ) )
期望的结果是:
Array ( [gozhi] => 10 [uzorong] => 1 [ngangla] => 8 [langthel] => 10 )
要实现这一点,请考虑以下方法:
对于一般情况的解决方案,请使用array_walk_recursive():
$final = array(); array_walk_recursive($input, function($item, $key) use (&$final){ $final[$key] = isset($final[$key]) ? $item + $final[$key] : $item; });
对于特定键(例如“gozhi”),使用 array_column() (自 PHP 5.5 起可用):
array_sum(array_column($input, 'gozhi'));
如果所有内部数组具有相同的键:
$final = array_shift($input); foreach ($final as $key => &$value){ $value += array_sum(array_column($input, $key)); } unset($value);
获取所有唯一键,然后对每个键求和:
$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中文网其他相关文章!