php遍历原理,PHP数组遍历与实现原理
一、for与foreach遍历结果顺序一致
$arr = array(‘max‘,‘xiaoli‘,‘xiaowang‘,‘laosan‘);
//for遍历
for($i=0;$i
echo $arr[$i];//max xiaoli xiaowang laosan
}
//foreach遍历
foreach($arr as $item){
echo $item;//max xiaoli xiaowang laosan
}
二、for与foreach遍历结果不一致
$arr = array();
$arr[]=‘max‘;
$arr[2] =‘xiaoli‘;
$arr[]=‘xiaowang‘;
$arr[1]=‘laosan‘;
//for遍历
for($i=0;$i
echo $arr[$i];//max laosan xiaoli xiaowang
}
//foreach遍历
foreach($arr as $item){
echo $item;//max xiaoli xiaowang laosan
}
一维数组遍历(关联)
$arr = array(
‘name‘=>‘max‘,
‘age‘=>18,
‘address‘=>‘北京‘
);
//for遍历
for($i=0;$i
echo $arr[$i];//undefined offset 0 1 2(未定义下标,无法读取)
}
//foreach遍历
foreach($arr as $item){
echo $item;//max 18 北京
}
二维数组遍历(普通)
$arr = array(
array(‘name‘,‘age‘,‘address‘),
array(‘北京‘,‘上海‘,‘深圳‘)
);
//按顺序输出
for($i=0;$i
for($j=0;$j
echo $arr[$i][$j];//name age address 北京 上海 深圳
}
//echo $arr[$i];
}
//foreach遍历
foreach($arr as $item){
foreach($item as $o){
echo $o;//name age address 北京 上海 深圳
}
}
二维数组遍历(关联)
$arr = array(
array(‘name‘=>‘max‘,‘age‘=>18,‘address‘=>‘beijing‘),
array(‘city‘=>‘beijing‘,‘area‘=>‘haidian‘)
);
//for遍历
for($i=0;$i
for($j=0;$j
echo $arr[$i][$j];//undefind offset (没有定义下标)
}
}
//foreach遍历
foreach($arr as $item){
foreach($item as $o){
echo $o;//max 18 beijing beijing haidian
}
}
实现原理
PHP数组是一种hash表,hash表的一个特点就是查询速度快。
关联数组之所以无法用for循环的遍历,是因为在hash表中并不是按顺序存储的。
原文:http://blog.51cto.com/12008764/2141998
php遍历原理,PHP数组遍历与实现原理相关推荐
- php array的实现原理,PHP数组遍历与实现原理
一维数组遍历(普通) 一.for与foreach遍历结果顺序一致 $arr = array('max','xiaoli','xiaowang','laosan'); //for遍历 for($i=0; ...
- php的遍历方法,PHP数组遍历方法总结
在PHP中数组分为两类: 数字索引数组和关联数组. 其中数字索引数组和C语言中的数组一样,下标是为0,1,2- 而关联数组下标可能是任意类型,与其它语言中的hash,map等结构相似. 下面介绍PHP ...
- 数组反向遍历ios_iOS中数组遍历的方法及比较
数组遍历是编码中很常见的一种需求,我们来扒一拔iOS里面都有什么样的方法来实现,有什么特点. 因为ios是兼容C语言的,所以c语言里面的最最常见的for循环遍历是没有问题的. 本文中用的数组是获取的系 ...
- JS遍历(循环)——JS对象遍历(循环)JS数组遍历(循环)
最近在处理一些偏逻辑的代码块经常遇到遍历问题,接下来跟大家一起温习一下有关于JS的遍历吧. js数组遍历 1.for循环 //不缓存 var arr = [5,2,0,1,3,1,4]; for ( ...
- html遍历map,forEach()方法遍历map()方法数组遍历
1.forEach()方法//以前遍历的方法 var arr = ['苹果','西瓜','香蕉','芒果']; for (var i=0;i console.log(arr[i]); } //forE ...
- 遍历迭代Api | 数组遍历汇总
遍历迭代Api,它们的作用,应用场景,参数,以及返回值分别是什么. forEach.map.some.every.filter(今天的主角) 我们统一设定一个初始数组: let array = [1, ...
- c语言对用下标法二维数组遍历,二维数组遍历:下标法与指针法的较量
在图像的采集中,常常需要用到二维数组,这里数组的遍历是指按照一定的顺序访问数组中所有的元素. 在众多的遍历方法中,下标法和指针法是两种常用的方法.但在使用的时候,我们只需要选择其中的一种,那么如何选择 ...
- C语言 数组遍历 - C语言零基础入门教程
目录 一.数组遍历原理 二.数组遍历实战 1.遍历数组查询数组中的元素 2.遍历数组修改数组中的元素 三.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语 ...
- 【C 语言】二级指针作为输入 ( 二维数组 | 二维数组遍历 | 二维数组排序 )
文章目录 一.二维数组 1.二维数组声明及初始化 2.二维数组遍历 3.二维数组排序 二.完整代码示例 一.二维数组 前几篇博客中 , 介绍的是指针数组 ; 指针数组 的 结构特征 是 , 数组中的每 ...
最新文章
- 图灵奖得主Hamming对于少数人获得重大成果原因的思考,送给此刻克服迷惘坚持前行的你...
- 震惊!EfficientDet终于开源了!
- Kafka集群环境搭建
- php静态文件怎么生成器,[新姿势]我用过的静态站点生成器们
- DeepWalk: Online Learning of Social Representations-2
- sublime安装markdown
- 去除maven父依赖_如何在Maven中从父项目中排除依赖项?
- 【集训队作业】IOI 2020 集训队作业 试题泛做 8
- 计算机屏保后无法再次启动,电脑开机一直停留在屏保 电脑问题的原因以及解决方法...
- ssm mysql项目实战_ssm项目实战_ssm项目实战教程_ssm项目实战视频教程 _课课家
- 面试阿里,你必须知道的背景知识——双非上岸阿里巴巴系列
- 计算机科学理论数学研讨会,2017年奇异摄动理论及其应用学术研讨会会议-上海交通大学数学系.DOC...
- python生成简单二维码_使用Python生成个性二维码
- 买天猫网店转让商标需要注意的
- 人工智能实战2019第七次作业(OpenPAI) 16721088 焦宇恒
- 富勒烯化聚甲基苯基硅烷、共轭聚合物-富勒烯
- 电脑连上网,可以登录qq、微信,但是打不开网页,怎么办?
- 进阶篇:3.9)3d打印件设计
- 【反编译系列】四、反编译so文件(IDA_Pro)
- qt套件中未设置qt版本, NO C++ compiler set in kit
热门文章
- 生命周期 用户可以操作dom_当面试官问:能否介绍下Vue生命周期时,该如何回答...
- linux vim打开乱码,linux下解决vim打开文件乱码现象
- 小米air耳机重新配对_平价蓝牙耳机品牌,百元平价蓝牙耳机推荐
- java 双等于 equals_在Java中等于equals vs Arrays.equals
- 现有类 成 mfc类_女人不想成“黄脸婆”,4类食物是衰老“催化剂”,女人尽量远离_氧化...
- java开启一个线程_【jdk源码分析】java多线程开启的三种方式
- 鸿蒙系统 塞班,华为鸿蒙系统来了:安卓系统会成为下一个“塞班”吗?
- oracle根据当前月份往前,oracle获取系统日期--当前时间+前一天+当前月+前一个月...
- php 筛选搜索,筛选——搜索
- Linux计算内存,正确计算linux系统内存使用率