合并多个关联数组时如何对共享键的值求和?

Patricia Arquette
发布: 2024-11-09 18:08:02
原创
626 人浏览过

How to Sum Values of Shared Keys When Merging Multiple Associative Arrays?

通过共享键求和来合并多个平面关联数组

当使用 array_merge() 函数组合关联数组时,与共享键关联的值倾向于替换而不是求和。当尝试从多个关联数组添加共享键的值时,这提出了一个挑战。

要克服这一障碍,可以采用多种方法:

  • Foreach 迭代错误抑制:
<code class="php">$sums = array();
foreach (array_keys($a1 + $a2) as $key) {
    $sums[$key] = (isset($a1[$key]) ? $a1[$key] : 0) + (isset($a2[$key]) ? $a2[$key] : 0);
}</code>
登录后复制
  • 匿名映射:
<code class="php">$keys = array_fill_keys(array_keys($a1 + $a2), 0);
$sums = array_map(function ($a1, $a2) { return $a1 + $a2; }, array_merge($keys, $a1), array_merge($keys, $a2));</code>
登录后复制
  • 组合解决方案:
<code class="php">$sums = array_fill_keys(array_keys($a1 + $a2), 0);
array_walk($sums, function (&amp;$value, $key, $arrs) { $value = @($arrs[0][$key] + $arrs[1][$key]); }, array($a1, $a2));</code>
登录后复制
  • 任意数量数组的自定义函数:
<code class="php">function array_sum_identical_keys() {
    $arrays = func_get_args();
    $keys = array_keys(array_reduce($arrays, function ($keys, $arr) { return $keys + $arr; }, array()));
    $sums = array();

    foreach ($keys as $key) {
        $sums[$key] = array_reduce($arrays, function ($sum, $arr) use ($key) { return $sum + @$arr[$key]; });
    }
    return $sums;
}</code>
登录后复制

这些方法提供了灵活的合并多个关联数组并对与共享关联的值求和的解决方案钥匙。

以上是合并多个关联数组时如何对共享键的值求和?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板