foreach用法_PHP和JS中的foreach

75fd9614aac12117a7074388052c184e.png

俗话说的好:从哪里跌倒就从哪里爬起来。想当初,在JavaScript中学了foreach之后,我对它的了解仅局限于“循环遍历”这四个字。在php中再次见到它,我竟然觉得恍若隔世。所以这篇文章我想来写写PHP和JS中的foreach。

一、JavaScript中的foreach

JavaScript 提供了很多个内置对象:Math/Array/Number/String/Boolean等,这些内置对象是带有属性和方法的特殊数据类型。

其中,Array(数组)对象有一个方法forEach,它可以为数组中的每个元素调用定义的回调函数,即对数组中的每个元素执行一次提供的函数。

在JS中,提到数组的循环遍历,最先想到的应该是for循环,即for(var i=0;i<arr.length;i++)这样的方式,也可以用更简便的forEach。示例如下:

<!DOCTYPE html>

此时,浏览器界面上展示循环遍历的结果:

8a3560de3f4362790c52b9cfd38780f2.png
图1.JavaScript中的foreach

在以上的示例中,arr中的元素依次被放入函数中执行输出,实现了数组的循环遍历。

二、PHP中的foreach

1、PHP中的foreach

php 4 引入了 foreach 结构,这只是一种遍历数组简便方法。foreach 仅能用于数组,有以下两种语法:

用法一:

foreach ($arr as $value) statement

第一种格式遍历给定的 arr 数组。每次循环中,当前单元的值被赋给 $value 并且数组内部的指针向前移一步(因此下一次循环中将会得到下一个单元)。

用法二:

foreach ($arr as $key => $value) statement

第二种格式与第一种作用相同,只除了当前单元的键名也会在每次循环中被赋给变量 $key。

示例如下:

用法一:

<?

代码运行结果:

79412689e19896e8c6346f7aefdd3077.png
图2.用法一

用法二:

<?

代码运行结果:

42b54c66246ca5db9b319c09940b4e19.png
图3.用法二

代码执行过程:

1.对所要遍历的数组指针进行重置。

2.获取指针当前所指向的元素的键名与键,并将键名与键值赋值给 $key,与 $value 变量。同时将指针下移一行。

3.重复的进行读取,下移指针的动作。

4.当没有元素可以读取时,会自动结束。

自 php 5 起,还可能遍历对象。在 php 5 中,当 foreach 开始执行时,数组内部的指针会自动指向第一个单元,即在以上两段代码中,不需要执行 reset($arr) 来重置指针的指向。

自 php 5 起,可以很容易地通过在 $value 之前加上 & 来修改数组的单元。此方法将以引用赋值而不是拷贝一个值。

示例如下:

<?

代码运行结果:

e0853233ff7b787b92dc6c5ae4b3f01a.png
图4. &amp;amp;符引用赋值

2、数组中的指针操作

在PHP的foreach循环遍历中,提到了指针。

php中提供了一套函数,这套函数专用于通过数组的指针来操作数组。

数组在内存中有一个数组指针与之相关,默认这个指针位于第1个元素上。这个指针可以通过php的指针函数来操作。

如下:

key → 获取指针当前所指向元素的键名。

current → 获取指针当前所指向元素的键值。

next → 将指针下移一个元素

prev → 将指针上移一个元素

reset → 将指针重置(回到第1个元素)

示例如下:

<?

代码运行结果:

7b2eca395fba387dce38130a6d6ee227.png
图5.指针操作
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值