当前位置: 首页 > 面试题库 >

合并2个数组并求和(数字键)

郜杰
2023-03-14
问题内容

我有2个数组

Array
(
    [010156] => Array
    (
        [supp_number] => 010156
        [totalamount] =>     4.113,23
        [debtorcred] => H
        [amount1] =>     4.113,23-
        [amount2] =>

        [amount3] =>
        [amount4] =>
        [amount5] =>
        [amount6] =>
    )
)



Array
(
    [010156] => Array
    (
        [supp_number] => 010156
        [totalamount] =>     4.113,23
        [debtorcred] => H
        [amount1] =>     4.113,23-
        [amount2] =>

        [amount3] =>
        [amount4] =>
        [amount5] =>
        [amount6] =>
    )
)

我是否可以将这些单独的数组合并为一个并将这些值相加,以便结果为:

Array
(
    [010156] => Array
    (
        [supp_number] =&gt;  <<<TOTAL >>>
        [totalamount] =&gt;     <<<TOTAL >>>
        [debtorcred] =&gt; <<<TOTAL >>>
        [amount1] =&gt;      <<<TOTAL >>>
        [amount2] =&gt;  <<<TOTAL >>>

        [amount3] =&gt;  <<<TOTAL >>>
        [amount4] =&gt;  <<<TOTAL >>>
        [amount5] =&gt;  <<<TOTAL >>>
        [amount6] =&gt;  <<<TOTAL >>>
    )
)

这是我目前拥有的功能,但我似乎无法使其工作:

function array_merge_numeric_values()
{
  $arrays = func_get_args();
  $merged = array();
  foreach ($arrays as $array)
  {
    foreach ($array as $key => $value)
    {
      if ( ! isset($merged[$key]))
      {
        $merged[$key] = $value;
      }
      else
      {
        $merged[$key] += $value;
      }
    }
  }

问题答案:

可以用两行代码完成此实际计算,而无需循环:

http://codepad.viper-7.com/ieSkHQ

$arr1 = array('amount1' => 1, 'amount2' => 6);
$arr2 = array('amount1' => 2, 'amount2' => 7);
$add = function($a, $b) { return $a + $b; };
$summedArray = array_map($add, $arr1, $arr2);
print_r($summedArray);

您只需要进行适当的调整即可解决您的嵌套结构。



 类似资料:
  • 问题内容: 让我们看一个例子。 我需要合并这两个对象数组并创建以下数组: 有没有JavaScript或jQuery函数可以做到这一点? 不适合我 它返回 问题答案: 如果要在JavaScript中合并2个对象数组。你可以使用这一招 例如 输出:

  • 问题内容: 我需要将2个多维数组合并在一起以创建一个新数组。 这两个数组是从和创建的,我需要将它们彼此关联。 数组#1 阵列#2 新阵列 我正在使用的当前代码有效,但仅适用于数组中的最后一项。 我想通过循环该函数在每个循环中擦除新数组。 我该如何纠正? 问题答案: []会将其附加到数组而不是覆盖。

  • 问题内容: 我有两个像这样的数组: 我想结合这两个数组,使其不包含重复项,并保留其原始键。例如,输出应为: 我已经尝试过了,但是它正在更改其原始键: 有什么办法吗? 问题答案: 只需使用: 那应该解决。因为如果一个键出现多次(例如在您的示例中),则使用字符串键,因此一个键将覆盖具有相同名称的处理键。因为在您的情况下,它们两者都具有相同的值,但这无关紧要,并且还会删除重复项。 更新:我刚刚意识到,P

  • 问题内容: 我有两个数组,我想将这两个数组合并为一个数组。请查看以下详细信息: 第一个数组: 第二个数组: 我想要这个结果。有人知道该怎么做吗? 希望你理解这个问题。先感谢您。 问题答案: 已修正 (再次) 接受无限数量的输入数组,将所有子数组作为索引数组合并到一个容器中,然后返回结果。 编辑03/2014: 提高可读性和效率

  • 问题内容: 我有两个字节数组,我想知道如何将一个添加到另一个或组合它们以形成一个新的字节数组。 问题答案: 您只是想将两个数组连接起来? 或者您可以使用: 或者您可以使用a 来完成工作: 或者,您可以简单地利用添加多个数组的优势。

  • 本文向大家介绍PHP简单实现合并2个数字键数组值的方法,包括了PHP简单实现合并2个数字键数组值的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP简单实现合并2个数字键数组值的方法。分享给大家供大家参考,具体如下: 先要了解一个基础知识点:PHP合并数组+与array_merge的区别分析 输出: 更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP数组(Array)操作技