Php 错误:注意:未定义的偏移量:索引位于。。。当和数组中的同一个键求和时
结果 错误:注意:未定义的偏移量:49英寸 如何修复它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=>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;
}