为什么我会收到Undefined offset error
?我试图为数组中的每个元素添加10,20,20
。请帮忙。提前致谢
<?php
$arr = array("a","b","c");
$counter = 0;
$status = array();
foreach($arr as $a){
$status[$counter] += 10;
$status[$counter] += 20;
$status[$counter] += 20;
echo $status[$counter]."<br>";
$counter ++;
}
?>
错误:
Notice: Undefined offset: 0 in C:\xampp\htdocs\test\index.php on line 6
300
Notice: Undefined offset: 1 in C:\xampp\htdocs\test\index.php on line 6
300
Notice: Undefined offset: 2 in C:\xampp\htdocs\test\index.php on line 6
300
`
答案 0 :(得分:1)
您正尝试在此行中的未定义数组元素中添加10:
$status[$counter] += 10;
尝试这样:
$arr = array("a","b","c");
$counter = 0;
$status = array();
foreach($arr as $a){
$status[$counter] = 10;//assign first
$status[$counter] += 20; //concate with assigned element
$status[$counter] += 20;
echo $status[$counter]."<br>";
$counter ++;
}
它不应该提供任何通知。
答案 1 :(得分:0)
在您的代码中,$status
是一个空数组,因此当您尝试向未定义的索引添加内容时,您将看到该通知(仅限第一次)。
根据$status
中元素的数量,将$arr
初始化为值为0的数组:
$status = array_fill(0, count($arr), 0);
答案 2 :(得分:0)
您正在使用“添加和分配”运算符。
如果您只想分配一个值,那么
$status[$counter] = 10;
工作得很好。
但是,您要求PHP向数组中的现有元素添加内容,但由于您尚未初始化它,因此还没有任何元素。只需在开始循环之前初始化数组。