一般foreach是用在历遍数组内的值用的.
$r=array('1','2','3','4','5');foreach($r as $v)
{
  echo $v.'<br>';
}输出结果为
1
2
3
4
5如果楼主连数组也不是很清楚,就比较麻烦了

解决方案 »

  1.   

    完整彻底foreach的格式是
    foreach($array as $key=>$value)
    他等价于
    while(list($key,$value) = each($array))工作流程是顺次从数组中取出一个元素,该元素的键或下标保存到变量$key,值保存到变量$value其中$key可以省略。如果省略了,就是你给出的样子。在你给出的代码中,$a是一个二维数组
    所以外层的循环每次取出一个一维数组,交于内层循环
      

  2.   

    谢谢你的解答。
    我就是不知道“foreach ($v1 as $v2)”此时$v1是值什么?
      

  3.   

    $v1是$a数组中的第一维元素, 这里是$a[0],$a[1]
      

  4.   

    第一次
    $v1[0] = "a";
    $v1[1] = "b";第二次
    $v1[0] = "y";
    $v1[1] = "z";foreach ($a as $v1) 
    {
    print_r($v1); //在这里查看一下  
      foreach ($v1 as $v2)
          {
     print "$v2\n";
        }
    }
      

  5.   

    <? 
    $a[0][0] = "a";
    $a[0][1]= "b";
    $a[1][0]= "y";
    $a[1][1]= "z";foreach ($a as $v1) 
    {  
      print_r($v1);//加入一句发现其中的不同
      
      foreach ($v1 as $v2) /*尤其是句怎么也弄不明白*/
          { print "$v2\n";
        }
    }
    ?>
    双重循环
    流程如下:
    { 大循环
       1次循环结果 Array ( [0] => a [1] => b )
                 {小循环
                   1次循环结果  a
                   2次循环结果  b
                  }
        2次循环结果Array ( [0] => y [1] => z ) 
                  {小循环
                   1次循环结果  y
                   2次循环结果  z
                  }
    }结束循环