$name = array( '孟子','孔子','孙子','老子' ); while($ele = each($name)){ $key = $ele['key']; // == $ele[0] $value = $ele['value']; // $ele[1] var_dump($key,$value); echo "<br>"; }
这样做虽然不常用但是对理解数组指针的概念很有用处,(最好的还是用foreach)
还能升级,利用List结构
List结构就是利用一个索引数组,同时初始化多个变量
$arr = array(0=>"some",1=>"many",2=>"much"); list($v1,$v2,$v3) = $arr; var_dump($v1,$v2,$v3);
所以就优化为这样
while(list($key,$value) = each($name)){ // $key = $ele['key']; // == $ele[0] // $value = $ele['value']; // $ele[2] var_dump($key,$value); echo "<br>"; }
如果是使用foreach的话,foreach内置reset()函数,在调用完foreach的时候,系统指针就会重新指向第一个,这儿就意味着不需要在foreach之前调用reset()函数,但是while就不一样,再循环完毕之后指针就不会指向第一个这是说明在使用while的时候需要使用reset函数;下面这个就能看好的解释了