php学习笔记-foreach循环
顾名思义,foreach是for each的连写,不是for reach。意思就是对数组中的每个元素都要处理一次。
foreach只能用来处理数组。
有两种用法,先看第一种。
foreach(array as $value)
{
func();
}
解释一下上面的代码,既然foreach是用来处理数组的,那么肯定需要指定一个数组的名字,array就是存放数组名字的一个变量。后面的value变量是什么意思呢?由于foreach是要对数组中的每个元素都要处理一次,那么你肯定需要一个变量来存放数组中的元素,要不你怎么处理数据呢?OK,我们解释了array和value存在的意义,接着看一下foreach的执行逻辑。
foreach第一次执行的时候,已经有一个指针指向了array的第一个元素,然后把第一个元素取出来赋予给value变量,接下来开始执行循环体中的代码,在循环体中就可以用value变量中的值了,执行完循环体代码之后,PHP将指针移动到了下一个元素,然后就和之前的过程一样了,就这样一个一个的把数组中的元素取出来放到value中,在循环中你想用这个value的值你就用,不想用的话,下次循环值也被覆盖掉,直到指针移动到了数组的最后一个元素,这个指针就不移动了。
<?php $names = array('chinese','math','english'); foreach($names as $temp)
{ echo $temp . '<br>';
} ?>
再看第二种。
foreach(array as $key =>$value)
{
func();
}
第二种是用于关联数组的。对于关联数组我们比较关心它中的每个元素的名字和值,所以在foreach中需要两个变量来存放取得的每个元素的名字和值,key和value就是这两个变量,每次循环取得的元素名字和元素的值都被分别存放在key变量中和value变量中。
<?php $names =array('a'=>'chinese','b'=>'math','c'=>'english'); foreach($names as $temp1 => temp2)
{
echo $temp1 . '=>'. $temp2 . '<br>'; } ?>
php学习笔记-foreach循环的更多相关文章
- 《python基础教程(第二版)》学习笔记 语句/循环/条件(第5章)
<python基础教程(第二版)>学习笔记 语句/循环/条件(第5章) print 'AB', 123 ==> AB 123 # 插入了一个空格print 'AB', 'CD' == ...
- 【学习笔记】循环神经网络(RNN)
前言 多方寻找视频于博客.学习笔记,依然不能完全熟悉RNN,因此决定还是回到书本(<神经网络与深度学习>第六章),一点点把啃下来,因为这一章对于整个NLP学习十分重要,我想打好基础. 当然 ...
- python学习笔记--for循环
推荐一个学习语言的网站:http://www.codecademy.com 有教程,可以边学边写,蛮不错的. for循环: 1.for loops allow us to iterate throug ...
- 学习笔记TF053:循环神经网络,TensorFlow Model Zoo,强化学习,深度森林,深度学习艺术
循环神经网络.https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/3_NeuralNetworks/re ...
- 【Python学习笔记】循环和迭代
for和while基本语法 break和continue else的使用 enumerate和zip在循环中的应用 for和while基本语法 Python中的的循环使用for和while语句来实现, ...
- [跟我学spring学习笔记][DI循环依赖]
循环依赖 什么是循环依赖? 循环依赖就是循环引用,就是两个或多个Bean相互之间的持有对方. Spring容器循环依赖包括构造器循环依赖和setter循环依赖,那Spring容器如何解决循环依赖呢? ...
- java学习笔记 --- 条件,循环语句
一.三元运算符 A:格式 比较表达式?表达式1:表达式2; B:执行流程: 首先计算比较表达式的值,看是true还是false. 如果是true,表达式1就是结果. 如果是 ...
- python学习笔记1 循环、列表、元祖、数据类型
if语法:基于python3语法 if a<b: 冒号结尾 print("yes") 注意语句的缩进需要一致,不然会报语法错误. elif a==b: print(" ...
- Python 学习笔记9 循环语句 For in
For in 循环主要适用于遍历一个对象中的所有元素.我们可以使用它遍历列表,元组和字典等等. 其主要的流程如下:(图片来源于: https://www.yiibai.com/python/pytho ...
随机推荐
- redhat linux 中设置网卡固定ip
更改 /etc/sysconfig/network-scripts/ifcfg-eth0(第一个网卡为eth0) DEVICE=eth0#网卡设备名称 ONBOOT=yes#启动时是否激活 yes | ...
- Angular 4.0 架构详解
Angular 4.0 架构 这个架构图展现了 Angular 应用中的 8 个主要构造块: 模块 (module) 组件 (component) 模板 (template) 元数据 (metadat ...
- HDU4416Good Article Good sentence(后缀自动机)
Problem Description In middle school, teachers used to encourage us to pick up pretty sentences so t ...
- CH5E02 [IOI1999]花店橱窗[暴力dp]
众所周知,这个人太菜了,所以她又来切水题了. 显然设计状态表示第$i$朵花放第$j$瓶中的最大价值.然后瞎转移一波是n三方的,加个前缀max变成n方就水过去了. 当然这题可以搜索剪枝的. 虐lyd书上 ...
- Nginx理解
说到反向代理,可能很多人都听说,但具体什么是反向代理,很多人估计就不清楚了.摘一段百度百科上的描述: 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后 ...
- 宝塔中的 base_opendir chattr
宝塔中的 base_opendir chattr base_opendir 目的是限制一些函数将手乱伸. 而宝塔中的自动配置的是 .user.ini,这个是文件是 +i ............ 这个 ...
- 山区建小学(区间DP)
山区建小学 时间限制: 1 Sec 内存限制: 128 MB提交: 17 解决: 5[提交][状态][讨论版][命题人:quanxing] 题目描述 政府在某山区修建了一条道路,恰好穿越总共m个村 ...
- Linux下Tomcat的启动和停止(包括杀死tomcat进程)
打开终端 cd /java/tomcat #执行 bin/startup.sh #启动tomcat bin/shutdown.sh #停止tomcat tail -f logs/catalina.ou ...
- 版本管理 word 文档比较
1.因为公司还在用SVN, 2.而且 还在用word 写文档, 3.而且 commit log 基本不写, 所以导致,想了解word文档 改动, 很浪费时间!!!! 所以想 快速了解word 改动, ...
- webbrowser和js交互小结
一.实现WebBrowser内部跳转,阻止默认打开IE 1.引用封装好的WebBrowserLinkSelf.dll实现 public partial class MainWindow : Windo ...