Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 合并2个数组并求和值(数字键)_Php_Mysql_Arrays - Fatal编程技术网

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

Php 合并2个数组并求和值(数字键),php,mysql,arrays,Php,Mysql,Arrays,我有两个数组 Array ( [010156] => Array ( [supp_number] => 010156 [totalamount] => 4.113,23 [debtorcred] => H [amount1] => 4.113,23- [amount2] => [amo

我有两个数组

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 >>>
    )
)

创建一个新的空数组并在第一个数组中循环,如下所示:

$array1 = array('my_num' => 10, 'my_num2' => 20);
$array2 = array('my_num' => 15, 'my_num2' => 25);
$newArray = array();
foreach($array1 as $key => $value){
    if(isset($array2[$key])){
        $newArray[$key] = $value+$array2[$key];
    } else {
        $newArray[$key] = $value;
    }
}

print_r($newArray);

创建一个新的空数组并在第一个数组中循环,如下所示:

$array1 = array('my_num' => 10, 'my_num2' => 20);
$array2 = array('my_num' => 15, 'my_num2' => 25);
$newArray = array();
foreach($array1 as $key => $value){
    if(isset($array2[$key])){
        $newArray[$key] = $value+$array2[$key];
    } else {
        $newArray[$key] = $value;
    }
}

print_r($newArray);

$value
在您的示例中是数组,而不是值。您可以尝试以下方法:

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] = array();
            }

            foreach($value as $kk => $vv)
            {
                if ( ! isset($merged[$key][$kk]))
                {
                    $merged[$key][$kk] = $vv;
                }
                else
                {
                    $merged[$key][$kk] += $vv;
                }
            }
        }
    }
}

$value
在您的示例中是数组,而不是值。您可以尝试以下方法:

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] = array();
            }

            foreach($value as $kk => $vv)
            {
                if ( ! isset($merged[$key][$kk]))
                {
                    $merged[$key][$kk] = $vv;
                }
                else
                {
                    $merged[$key][$kk] += $vv;
                }
            }
        }
    }
}

此实际计算可在两行代码中完成,无需循环:


您只需对嵌套结构进行适当调整。

此实际计算可在两行代码中完成,无需循环:


您只需对嵌套结构进行适当调整。

FYI,您在最后一个代码块中似乎缺少右大括号。FYI,您在最后一个代码块中似乎缺少右大括号。