Php 错误:注意:未定义的偏移量:索引位于。。。当和数组中的同一个键求和时

Php 错误:注意:未定义的偏移量:索引位于。。。当和数组中的同一个键求和时,php,Php,结果 错误:注意:未定义的偏移量:49英寸 如何修复它 我想要的结果是:数组(49=>10)如果索引还不存在,就初始化它 $arrOne = array( '49' => 5 ); $arrTwo = array( '49' => 5 ); $myArray = array($arrOne, $arrTwo); $sumArray = array(); foreach ($myArray as $k => $subArray) { foreach

结果

错误:注意:未定义的偏移量:49英寸

如何修复它


我想要的结果是:数组(49=>10)

如果索引还不存在,就初始化它

$arrOne = array(
    '49' => 5
);

$arrTwo = array(
    '49' => 5
);

$myArray = array($arrOne, $arrTwo);
$sumArray = array();

foreach ($myArray as $k => $subArray) {
    foreach ($subArray as $id => $value) {
        $sumArray[$id] += $value;
    }
}

print_r($sumArray);
修补到您的代码中:

if(!isset($sumArray[$id])) {
    $sumArray[$id] = 0;
}

[]

因为它尚未定义,并且您希望将(+=)添加到未定义的偏移量。 将内部代码更改为以下内容:

$arrOne = array(
    '49' => 5
);

$arrTwo = array(
    '49' => 5
);

$myArray = array($arrOne, $arrTwo);
$sumArray = array();

foreach ($myArray as $k => $subArray) {
    foreach ($subArray as $id => $value) {
        if(!isset($sumArray[$id])) {
            $sumArray[$id] = 0;
        }
        $sumArray[$id] += $value;
    }
}

print_r($sumArray);

@ANNT看起来像是禁用了错误消息-与比较。
a+=b
在某种程度上等同于
a=a+b
。这意味着你在做
$sumArray[$id]=$sumArray[$id]+$value
,而
$sumArray[$id]
显然不存在。@Siguza oh我明白了HaitruongInfotech的意思。请检查下面的答案并加上一票作为正确答案。如果它们也有用的话,你也可以投票。谢谢,人们没有回应。删除我的answer@deceze,感谢您将格式设置为代码。不知怎的,它总是出错。
if (!isset($sumArray[$id])) {
    $sumArray[$id] = $value;
} else {
    $sumArray[$id] += $value;
}