PHP While循环注意:未定义的偏移量

PHP While循环注意:未定义的偏移量,php,while-loop,Php,While Loop,我正在修复一个现有的PHP代码 我犯了一个错误 注意:未定义的偏移量:6 PHP代码如下所示。这是一个大的while循环。这里我只展示主要部分 $data = Array ( [0] => 1 ) $data2 = Array ( [0] => 1 [1] => 10 [2] => 12 [3] => 15 [4] => 17 [5] => 23 ) $i = 0; while($data[$

我正在修复一个现有的PHP代码

我犯了一个错误

注意:未定义的偏移量:6

PHP代码如下所示。这是一个大的while循环。这里我只展示主要部分

$data = Array
(
    [0] => 1
)

$data2 = Array
(
    [0] => 1
    [1] => 10
    [2] => 12
    [3] => 15
    [4] => 17
    [5] => 23
)


$i = 0;
while($data[$i]){
    array_push($data,$data2);
    $i++;
}
而且

有时,我会犯错误

注意:未定义的偏移量:4

为了


如何解决此问题?

您应该使用foreach迭代数组:

foreach($data as $key => $value) {}
while
的警告是,您必须检查此阵列位置是否正确存在。改用这个:

while(isset($data[$i])){}

改为尝试一个
foreach
循环:
while(isset($data[$i])){
条件必须是布尔值
TRUE
FALSE
。尽管您最好使用
foreach
循环遍历数组。什么???我不明白您在这里做什么…您正在将整个数组
$data2
添加到
$data
的末尾,而
$data中有一个值de>这听起来毫无意义…?@JuniusRendel我知道这段代码令人困惑。我仍在试图弄清楚开发人员在编写这段代码时的想法。注意:在
while
条件中使用
isset
,因为该条件需要等同于布尔
TRUE
/
FALSE
;而
isset
将do(也处理未定义的偏移量)。感谢Richard Reiber和@ʰᵈˑ
while(isset($data[$i])){}