php遍历数组的三种方法及各自的区别

php遍历数组的方式主要有三种:

  • for循环
  • foreach循环
  • while、list()、each()组合循环

    其中:
  • for循环只能遍历索引数组,foreach可以遍历索引和关联数组,联合使用list(),each()和while循环同样可以遍历索引和关联数组。
  • while、list()、each()组合不会reset(),也就是不会把指针清零。
  • foreach()遍历会对数组进行reset()操作

while、list()、each()组合

这三个要组合使用才能完成对数组的遍历

  • each()

返回当前元素的键名和键值,并将内部指针向前移动

该元素的键名和键值会被返回带有四个元素的数组中。两个元素(1 和 Value)包含键值,两个元素(0 和 Key)包含键名。

<?php
$people = array("Bill", "Steve", "Mark", "David");
print_r (each($people));// Array ( [1] => Bill [value] => Bill [0] => 0 [key] => 0 )
?>
  • list()

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

该函数只用于数字索引的数组,且假定数字索引从 0 开始。如果存在不是数字索引的 则跳过。相当于list里面的第n个参数对应array里面数字索引为n-1的元素

  • list()each()配合

有了上面的认识,就可以将list()和each()进行组合:

<?php
list($key,$value) = each(my_array);//这样就将key value 取到了
  • list() each() while组合

注意到each()会将指针指向下一个元素,那么反复执行each()就会遍历到每一个元素,当each()指向最后时,返回false,因此可以配合while使用

<?php
while(list($key,$value) = each(my_array)){
echo $key . "=>" . $value;
}

php分支考点

if...elseif...

尽量把可能性大的条件写在前面。

switch...case...

  • 和if不同,switch后面的控制表达式的数据类型只能是整形、符点类型或字符串
  • continue语句作用在switch里面,相当于break。如果想让continue跳出switch外面的循环,可以使用 continue2
  • 由于switch...case...会生成一个跳转表,直接跳转到case里,所以在执行复杂判断时使用switch case会大大提升效率

最新文章

  1. appium的几点总结
  2. 配置tomcat解压版
  3. iOS学习19之OC类的扩展
  4. docker 命令汇总
  5. HttpUtility.UrlEncode
  6. maven最齐全配置pom.xml
  7. C# 多线程之一:信号量Semaphore
  8. 转载---SQL Server XML基础学习&lt;2&gt;之--FOR XML AUTO/RAW
  9. 你真的用上keepalive了吗
  10. Redis之PHP操作
  11. 通过实例理解 RabbitMQ 的基本概念
  12. MySQL学习笔记_10_MySQL高级操作(下)
  13. Leetcode 21. Merge Two Sorted Lists(easy)
  14. Android UiAutomator2.0
  15. 关于性能(SEO)
  16. 数据结构+算法面试100题~~~摘自CSDN
  17. CSS Sprites (CSS 精灵) 技术
  18. oracle查看用户表
  19. springboot 完整企业项目搭建实记
  20. rsyslog收集nginx日志配置

热门文章

  1. Okapi BM25 (BM stands for Best Matching)
  2. TCP Operational Overview and the TCP Finite State Machine (FSM) http://tcpipguide.com/free/t_TCPOperationalOverviewandtheTCPFiniteStateMachineF.htm
  3. HDU3488 Tour —— 二分图最大权匹配 KM算法
  4. easy_install uncompyle6 egg
  5. Python基础第九天
  6. MySQL-业务优化——说的就是变
  7. 常见电商项目的数据库表设计(MySQL版)
  8. 【黑金教程笔记之004】【建模篇】【Lab 03 消抖模块之一】—笔记
  9. Linux 系统管理命令 - vmstat - 虚拟内存统计
  10. json知识笔记