运行会出错,提示
Notice: Undefined offset: 2
因为那个数组元素已经删除了。实现相同的功能。正确的写法应该是啥呢?
代码精简如下。
$cows = array(1); for ($j=0;$j<10;$j++) //循环10
{
foreach ($cows as $key => $value)
{
$cows[$key]++;
if ($cows[$key] == 5) // ==5 销毁
{
unset($cows[$key]);
}
if ($cows[$key] == 3) //==3 增加一个元素
{
$cows[] = 1;
}
}
Notice: Undefined offset: 2
因为那个数组元素已经删除了。实现相同的功能。正确的写法应该是啥呢?
代码精简如下。
$cows = array(1); for ($j=0;$j<10;$j++) //循环10
{
foreach ($cows as $key => $value)
{
$cows[$key]++;
if ($cows[$key] == 5) // ==5 销毁
{
unset($cows[$key]);
}
if ($cows[$key] == 3) //==3 增加一个元素
{
$cows[] = 1;
}
}
for ($j=0;$j<10;$j++) //循环10
{
foreach ($cows as $key => $value)
{
$cows[$key]++;
if ($cows[$key] == 5) // ==5 销毁
{
unset($cows[$key]);
echo $key; //这里加一句,你就可以看到出错的原因了
}
if ($cows[$key] == 3) //==3 增加一个元素
{
$cows[] = 1;
}
}
}当 unset($cows[$key]); 执行后,$cows[$key] 就不存在了。你还 if ($cows[$key] == 3) 自然要报错的所以你要么检查 $cows[$key] 的存在,要么就放到 else 分支去 if ($cows[$key] == 5) // ==5 销毁
{
unset($cows[$key]);
}
else if ($cows[$key] == 3) //==3 增加一个元素
{
$cows[] = 1;
}