<?php
      $foo=array("bob","fre","jus");
      $bar=each($foo);
      echo "\$bar当前内容";
      print_r($bar);
?>
怎么会输出
$bar当前内容Array ( [1] => bob [value] => bob [0] => 0 [key] => 0 ) 

解决方案 »

  1.   

    each — 返回数组中当前的键/值对并将数组指针向前移动一步 Report a bug 说明
    array each ( array &$array )
    返回 array 数组中当前指针位置的键/值对并向前移动数组指针。键值对被返回为四个单元的数组,键名为 0,1,key 和 value。单元 0 和 key 包含有数组单元的键名,1 和 value 包含有数据。 如果内部指针越过了数组的末端,则 each() 返回 FALSE。 
      

  2.   

    手册写的很清楚,Return the current key and value pair from an array and advance the array cursor,返回数组当前指针指向的索引和值,并且将数组指针后移。
      

  3.   

    each — 返回数组中当前的键/值对并将数组指针向前移动一步 返回 array 数组中当前指针位置的键/值对并向前移动数组指针。键值对被返回为四个单元的数组,键名为 0,1,key 和 value。单元 0 和 key 包含有数组单元的键名,1 和 value 包含有数据。 如果内部指针越过了数组的末端,则 each() 返回 FALSE。手册是这样介绍的,我还么有想明白
      

  4.   

    汗...手冊不是寫得很清楚了嗎?
    返回 array 数组中当前指针位置的键/值对并向前移动数组指针。键值对被返回为四个单元的数组,键名为 0,1,key 和 value。单元 0 和 key 包含有数组单元的键名,1 和 value 包含有数据如果這樣都看不懂...那我就無能為力了...
      

  5.   

    楼上的人说了全都等于没说。为什么值是bob,0.print_r和print的输出怎么不一样?我要的是自己理解的,抄书的别回复了,害我白开心一下
      

  6.   

    Array ( [1] => bob [value] => bob [0] => 0 [key] => 0 ) 是正确的哈你要这样看。
    Array ( 
    [0] => 0 //key值
    [1] => bob //value值
    [key] => 0//key值
    [value] => bob //value值
     ) 
    他这样返回是让我们可以对each的结果的属性有多种调用方式而已。
    也就是你可以:
    $key=$bar[0]; or $key=$bar['key'];//value也是一样
      

  7.   

    而each真正返回只有2项,即键和值
    list($key,$value)=each($arr);
      

  8.   

    7楼回答得还可以接受一下,那么array里的其他元素怎么不输出呢,其他元素有用吗?print_r和print怎么输出不一样,依旧抄书的别回答,要的是个人的理解
      

  9.   

    print_r print不一样,这个你直接看手册吧,你又没给钱给人家,人家回答了,又说不好.还是虚心一点吧.
      

  10.   

    each只会读数组的一个元素,并将指针下移到下一个元素。最后一个元素读完以后,再进行each则返回falseeg:
    $foo=array("bob","fre","jus");
    while($bar=each($foo)){
      echo "元素key:".$bar['key'];
      echo "-元素value:".$bar['value'];
    }