在之前的文章中,我们学习了PHP数组的创建,感兴趣的可以去点击链接查看→《PHP循环学习三:如何使用for循环语句遍历数组》中,我们介绍了for循环和利用该循环怎么遍历数组。本文就不详细介绍了,下面通过代码示例来具体看看:

<?php
header("Content-type:text/html;charset=utf-8");
$array= array(2,"数学","梨子",3.14,"榴莲",12);
for ($i=0; $i < count($array); $i++) { 
    echo $array[$i] . "<br/>";
} 
?>

输出结果:

2
数学
梨子
3.14
榴莲
12

方法2:使用foreach循环语句

同样的,在之前PHP循环系列文章《PHP循环学习四:怎么利用foreach语句遍历和修改数组元素》中,我们介绍了利用foreach循环遍历数组的2种结构。本文就不详细介绍了,下面通过代码示例来具体看看:

<?php
header("Content-type:text/html;charset=utf-8");
$array= array("香蕉","苹果","梨子","橙子","橘子","榴莲");
foreach ($array as $val){
    echo "值是:" . $val ;
    echo "<br/>";
}
echo "<br/>";
foreach ($array as $key => $value) { 
    echo "键名为:".$key.",键值为:".$value . "<br/>";
} 
?>

输出结果:

1.png

方法3:利用while循环+each()+list()

each() 函数返回数组中当前的键值并将数组指针向前移动。在执行 each() 之后,数组指针将停留在数组中的下一个元素或者当碰到数组结尾时停留在最后一个元素。

而list() 函数用于在一次操作中给一组变量赋值。

while循环+each() 函数+ list() 函数可以遍历数组,下面通过代码示例来看看:

<?php
header("Content-type:text/html;charset=utf-8");
$array= array("香蕉","苹果","梨子","橙子","橘子","榴莲");
while( list($key, $val) = each($array) ) {
    echo "$key => $val<br>";
}
?>

输出结果:

2.png

方法4:利用do-while循环+next()+key()+current()

PHP中每个数组都有一个内部指针,即数组指针;该指针会指向数组中的某个元素(该元素就是数组的当前元素,默认最初指向数组中的第一个元素)。

  • next() 函数可以返回数组内部指针指向的下一个元素的值,当没有更多元素时返回 FALSE。

  • key() 函数用来获得数组中当前元素的键名。

  • current() 函数返回数组的当前元素的键值。

利用do-while循环+next()+key()+current()可以遍历数组,获取数组元素的键名和键值。

下面通过代码示例来具体看看:

<?php
header("Content-type:text/html;charset=utf-8");
$array= array("香蕉","苹果","梨子","橙子","橘子","榴莲");
do{
	 echo key($array)." => ".current($array)."<br>";
}while(next($array));
?>

输出结果:

3.png

遍历结束后,数组指针会指向最后一个数组元素,我们可以使用reset()函数来重置数组指针,将数组中的内部指针重新指向第一个元素。

如果对do-while循环不熟悉,可以点击阅读《PHP面试题大汇总(收藏)

以上就是PHP数组学习之怎么遍历数组元素?4种方法浅析的详细内容,更多请关注亿码酷站其它相关文章!



PHP数组学习之怎么遍历数组元素?4种方法浅析
—–文章转载自PHP中文网如有侵权请联系ymkuzhan@126.com删除

下载声明:
  • 本站资源如无特殊说明默认解压密码为www.ymkuzhan.com建议使用WinRAR解压;
  • 本站资源来源于用户分享、互换、购买以及网络收集等渠道,本站不提供任何技术服务及有偿服务,资源仅提供给大家学习研究请勿作它用。
  • 赞助本站仅为维持服务器日常运行并非购买程序及源码费用因此不提供任何技术支持,如果你喜欢该程序,请购买正版!
  • 版权声明:
  • 下载本站资源学习研究的默认同意本站【版权声明】若本站提供的资源侵犯到你的权益,请提交版权证明文件至邮箱ymkuzhan#126.com(将#替换为@)站长将会在三个工作日内为您删除。
  • 免责声明:
  • 您好,本站所有资源(包括但不限于:源码、素材、工具、字体、图像、模板等)均为用户分享、互换、购买以及网络收集而来,并未取得原始权利人授权,因此禁止一切商用行为,仅可用于个人研究学习使用。请务必于下载后24小时内彻底删除,一切因下载人使用所引起的法律相关责任,包括但不限于:侵权,索赔,法律责任,刑事责任等相关责任,全部由下载人/使用人,全部承担。以上说明,一经发布视为您已全部阅读,理解、同意以上内容,如对以上内容持有异议,请勿下载,谢谢配合!支持正版,人人有责,如不慎对您的合法权益构成侵犯,请联系我们对相应内容进行删除,谢谢!