是否有任何特殊规则使用foreach和while循环(使用each()函数)迭代php中的数组?

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了是否有任何特殊规则使用foreach和while循环(使用each()函数)迭代php中的数组?脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我是 PHP新手.
我的问题是,当我使用以下脚本时:

$arr1 = array('fname' => 'niraj','lname' => 'kaushal','cITy' => 'luckNow');

while(list($key,$value) = each($arr1)){

echo "$key has $value value <br>";

}

foreach($arr1 as $key => $value){

echo "$key:$value <br>";

}

输出

fname has niraj value 
lname has kaushal value 
city has luckNow value 
fname:niraj 
lname:kaushal 
city:luckNow

但是当我改变foreach和while循环的顺序如下

$arr1 = array('fname' => 'niraj','city' => 'luckNow');

foreach($arr1 as $key => $value){

echo "$key:$value <br>";

}

while(list($key,$value) = each($arr1)){

echo "$key has $value value <br>";

}

它给出了以下输出

fname:niraj 
lname:kaushal 
city:luckNow

为什么第二个脚本不显示while循环的输出.它背后的原因是什么.

解决方法

这是因为each()只返回当前键/值,然后推进内部计数器(当前数组中的位置).它没有重置它.

一个循环(foreach)将内部计数器设置为数组的末尾,因此第二个循环认为它已经完成,因此不执行任何操作.

在使用each()开始循环之前,需要在数组上调用reset():

reset($arr1);
while (list($key,$value) = each($arr1)){
    echo "$key has $value value <br>";
}

脚本宝典总结

以上是脚本宝典为你收集整理的是否有任何特殊规则使用foreach和while循环(使用each()函数)迭代php中的数组?全部内容,希望文章能够帮你解决是否有任何特殊规则使用foreach和while循环(使用each()函数)迭代php中的数组?所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。