list-each-while遍历数组 和使用foreach的对比

时间:2022-10-21 17:42:29
$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函数;下面这个就能看好的解释了

list-each-while遍历数组 和使用foreach的对比