运行会出错,提示
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;
    }

}

解决方案 »

  1.   

    用isset先判断?
      

  2.   

    if (isset($cows[$key]) && $cows[$key] == 3)
      

  3.   

    $cows[$key] 都有值的,初始均为1
      

  4.   

    $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]);
                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;
            }