在php中对数组遍历用得最多要算是foreac,while,for这几种方法了,下面我们来介绍这三种遍历数组的实现程序代码吧。
经常会有人问我,PHP的数组,如果用foreach来访问,遍历的顺序是固定的么? 以什么顺序遍历呢?比如如下代码:
- <?php$arr['laruence'] = 'huixinchen';
- $arr['yahoo'] = 2007;
- $arr['baidu'] = 2008;
- foreach ($arr as $key => $val)
- {
- //结果是什么?
- }
又比如如下代码:
- <?php
- $arr[2] = 'huixinchen';
- $arr[1] = 2007;$arr[0] = 2008;
- foreach ($arr as $key => $val)
- {
- //现在结果又是什么?
- }
当我们使用each/next系列函数来遍历的时候,也是通过移动数组的内部指针而实现了顺序遍历,这里有一个问题,比如如下代码:
- <?php
- $arr = array(1,2,3,4,5);
- foreach ($arr as $v) {//可以获取}
- while (list($key, $v) = each($arr))
- {//获取不到}
- ?>
了解到我刚才介绍的知识,那么这个问题也就很明朗了,因为foreach会自动reset,而while这块不会reset,所以在foreach结束以后,pInternalPointer指向数组最末端, while语句块当然访问不到了,解决的办法就是在each之前,先reset数组的内部指针.
也就是说, PHP中遍历数组的顺序, 是和元素的添加先后相关的, 那么, 现在我们就很清楚的知道,文章开头的问题的输出是:
huixinchen,2007,2008
所以,如果你想在数字索引的数组中按照索引大小遍历,那么你就应该使用for,而不是foreach,代码如下:
- for($i=0,$l=count($arr); $i<$l; $i++)
- { //这个时候,不能认为是顺序遍历(线性遍历)}
波比源码 – 精品源码模版分享 | www.bobi11.com
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 本站源码并不保证全部能正常使用,仅供有技术基础的人学习研究,请谨慎下载
8. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!
波比源码 » php中数组遍历循环实现程序
波比源码 » php中数组遍历循环实现程序