foreach(),list(),each()结构

本文详细介绍了PHP中遍历数组的三种方式:foreach()结构,包括其两种语法形式和注意事项;list()语言结构,重点讨论了它如何将数组中的值赋给变量以及其工作机制;还有each()函数,解释了其返回数组当前指针位置的键值对并移动指针的原理。通过实例分析,帮助理解这三种遍历方式的使用和潜在问题。
摘要由CSDN通过智能技术生成

a.关于foreach()

首先foreach()是一种循环控制结构,类似于for语句。

foreach()结构提供了一种简便遍历数组的方法;它只能用于数组,当你将它用于其他数据类型或者一个未初始化的变量时,会产生错误!foreach()结构有两种语法:

第一种:

foreach (array_expression as $value)

//do something
说明:这里array_expression为要遍历的数组,当foreach()开始工作的时候,会将数组中当前元素的值赋给变量$value;每执行一次循环后,数组指针向下移动一位,指向下一个数组元素;变量$value的作用就是存放遍历数组时数组指针指向的当前数组元素的值。(变量名取为value仅仅是为了便于理解,实际应用时你可以取任意合法的名字)

第二种:

foreach (array_expression as $key => $value)

//do something
说明:第二种语法和第一种不同之处在于该语法执行时会将数组指针指向的当前数组元素的关键字值或索引值存放到变量$key中,而将与该关键字或索引相对应的数组元素的值存放到变量$value中。(同样这里变量名key和value的也是为了便于理解,实际用的时候你可以自由取名)

注1:当foreach()开始执行的时候,数组内部的指针会自动指向数组的第一个元素,这就是说不需要再使用foreach()之前调用reset().

注2:foreach()操作的是指定数组的一个拷贝,而不是数组本身,它不会对数组本身造成影响;若想修改数组元素,指定数组必须是被引用的。手册上讲的foreach对数组指针有些副作用,在foreach循环中或后都不要依赖数组指针的值,除非对其重置,我的理解是:在使用foreach操作一个数组后,如要使用该数组指针,最好将该数组指针进行重置。

下面是关于数组被引用的例子:

<?php
$array_1=array(1,2,3);
foreach($array_1 as $v1)
{
   echo $v1.'</br>';  //输出:1 2 3
   $v1=$v1*2;
}

foreach($array_1 as &$v2)
{
   echo $v2.'</br>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值