PHP中foreach详细分析—一般数组与对象数组
PHP中的foreach作为经常用到的函数,常常用来遍历数组,对于数组中的元素是值的情形(如一般常见型的数组),foreach只是将数组中的每份元素的值拷贝到each后面的变量,
也就是对值本身的拷贝,对其值进行改变并不会影响到数组本身。
如:
$arr = array(1, 2, 3);foreach($aa as $el){$el =+ 100; }foreach($arr as $el){echo $el;echo "<br/>";} // 结果:1 2 3
但是如果是对象数组的情形,也就是数组元素均为对象时,此时each后面的变量是对对象引用的拷贝,对其进行的改变会直接影响到原数组本身。这点与上面情形很容易弄混。
如:
$aa = new stdClass(); $aa->name = '张三';$bb = new stdClass(); $bb->name = '李四';$arr = array($aa, $bb);foreach($arr as $element){$element->name = 'qqyumidi'; }foreach($arr as $el){echo $el->name;echo "<br/>"; } // 结果:qqyumidi qqyumidi
笔者水平有限,若有错漏,欢迎指正,如果转载以及CV操作,请务必注明出处,谢谢!
PHP中foreach详细分析—一般数组与对象数组相关推荐
- 数组中数组/嵌套对象数组的遍历操作
数组中数组/嵌套对象数组的遍历操作 总结以下方法 1.for i in arr (推荐) 2.arr.foreach(item=>{ item.foreach(item2=>{ } ) } ...
- Arrays.deepToString() 方法同时适用于基元数组和对象数组
Arrays.deepToString() 方法同时适用于基元数组和对象数组: import java.util.*;public class MultiDimWrapperArray {public ...
- js 三维数组转对象数组 二维数组转对象数组
1. 三维数组转对象数组 输出: 代码如下: let dataArr = [[[109.654541015625, 29.34387539941801],[110.467529296875, 59.3 ...
- PHP中foreach详细解读
oreach 语法结构提供了遍历数组的简单方式.foreach 仅能够应用于数组和对象,如果尝试应用于其他数据类型的变量,或者未初始化的变量将发出错误信息.有两种语法: foreach (array_ ...
- vue中插值语法中v-for() of 与v-for() in 遍历对象数组的异同,以及for in for of在方法中遍历对象和数组的异同
写这个的目的是记录下Vue中使用v-for-in v-for-of遍历对象与遍历数组的区别,以及JS中使用for-in for-of 遍历对象和数组的区别. 直接说结论,节约大家时间,下面是推论,有时 ...
- JS删除数组(对象数组)中的指定元素
以下列举的方法,基本能够满足数组内元素的删除,如果是多层嵌套的数组,也可使用,在该方法上循坏使用 1.filter filter:将数组中符合条件的元素保存到一个新的数组中(过滤数组中的元素) // ...
- 【pgsql】使用<foreach></foreach>处理数组或对象数组时的循环操作
insert操作,用foreach标签做循环插入操作,两种不同的写法,注意foreach位置不同. @Insert(" <script> "+ " <i ...
- “模板”学习笔记(7)-----数组模板+对象数组举例
我们可以定义一个数组模板,并且利用该模板声明其数组成员.声明的方式非常简单,主需要一下两步: template<class ElementType,int n>; ElementType ...
- java二维对象数组_java 二维数组和对象数组
1.二维数组:二维数组就是存储一维数组(内存地址/引用)的数组 2.二维数组的初始化 1) int intA[][]={{1,2},{2,3},{3,4,5}}; 2) int [][] intB=n ...
最新文章
- TensorFlow练习24: GANs-生成对抗网络 (生成明星脸)
- Oracle快速克隆安装
- Knox网关、网关简介、概述、支持的Apache Hadoop服务、支持的Apache Hadoop生态系统的UI、参考资料
- python语言术语_python的一些术语
- 在Windows Server 2008上安装和配置Web和FTP服务
- ios13.5.1降级_高并发系统下的降级如何实现
- 3d激光雷达开发(字符串输出和实体绘制)
- 先序中序建立二叉树的递归算法
- win10打印机不能服务的问题
- DB2错误码sqlcode对应表
- 软件开发成本工作量估算
- 如何启动联想计算机的休眠模式,如何设置休眠、待机、睡眠
- r5 3500u和r5 4500u的区别
- Open3D-GUI系列教程(七)打包应用程序
- SafetyNet使用机器学习策略的真实世界自动驾驶车辆的安全规划(一)
- 团队组成五个基本要素_团队的5个基本构成要素(5P):目标、定位、计划、职权、人...
- selenium闪退
- 百度AI——人脸识别的简单应用
- IIS之web服务器部署
- 李昌镐:苍老的青春(转载)