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] => <<<TOTAL >>>
[totalamount] => <<<TOTAL >>>
[debtorcred] => <<<TOTAL >>>
[amount1] => <<<TOTAL >>>
[amount2] => <<<TOTAL >>>
[amount3] => <<<TOTAL >>>
[amount4] => <<<TOTAL >>>
[amount5] => <<<TOTAL >>>
[amount6] => <<<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,您在最后一个代码块中似乎缺少右大括号。