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 ...
随机推荐
- LeetCode OJ:Minimum Path Sum(最小路径和)
Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right which ...
- 19年博客flag
目录 为什么没有年终总结 为什么今天更新了 19年博客flag 个人博客链接:我在马路边 https://hhongwen.cn 更好的阅读体验点击查看原文:19年博客flag 原创博客,转载请注明出 ...
- [ Laravel 5.5 文档 ] 数据库操作 —— 在 Laravel 中轻松实现分页功能
 简介 在其他框架中,分页是件非常痛苦的事,Laravel 让这件事变得简单易于上手.Laravel 的分页器与查询构建器和 Eloquent ORM 集成在一起,并开箱提供方便的.易于使用的.基于 ...
- RabbitMQ 权限分离&HA操作文档
概要 默认情况下,使用帐号guest帐号登陆MQ,所有用户的queue信息,全部创建在根目录/的virtual host下,而这样,就会导致,任一用户登录后,都能看到其他用户的queue信息. 针对以 ...
- Java处理乱码问题
中文乱码分为GET乱码和POST乱码 GET乱码在Tomcat中配置编码 <Connector port="8080" protocol="HTTP/1.1&quo ...
- Filebeat 5.x 日志收集器 安装和配置
Filebeat 5.x版本 风来了.fox 1.下载和安装 https://www.elastic.co/downloads/beats/filebeat 这里选择 LINUX 64-BIT 即方式 ...
- 操作Oracle 一条龙
1 引用Oracle.DataAccess.dll 2 App.Config中配置连接字符串: Data Source=(DESCRIPTION = (ADDRESS = (PROTOCOL = TC ...
- 线程及同步的性能 – 线程池/ ThreadPoolExecutors/ ForkJoinPool
线程池和ThreadPoolExecutors 虽然在程序中可以直接使用Thread类型来进行线程操作,但是更多的情况是使用线程池,尤其是在Java EE应用服务器中,一般会使用若干个线程池来处理来自 ...
- java--构造器与static
原本无显示编码构造器,则有一个默认的隐式(隐藏的无参构造器),但是,当显示指定了构造器,则这个默认隐式的构造器将不存在,比如此时无法new无参的构造器(除非显示地编写声明无参的构造函数). 如果子类构 ...
- linux uid/euid/suid
Each UNIX process has 3 UIDs associated to it. Superuser/root is UID=0. UID Read UID. It is of the u ...