世界上最好学的语言php,带你学习世界上最好的语言PHP(八)

数组初步

数组是一种复合数据类型,是在内存中开辟一块连续的空间(堆区),里面可以保存多个不同类型的数据,而且没有长度限制!

数组的组成:数组,是由元素(element)构成的,每个元素都是数组中的成员!

元素与数组之间的关系有点类似于数学中的元素与集合之间的关系!

每个元素又可以分成两部分:

元素的名字:叫作元素的键(key)或者叫作元素的下标(index),元素的值:也叫作值(value)

所以,一个元素也叫作一个“键值对”(key/value)

创建数组:一般有两种方式进行创建,显示创建、利用array()创建

e3c601452a3dd0d2682b2918a2480a7c.png

隐式创建

就是利用中括号语法来创建:

83d650ba2a832c2874f042d9eec9798c.png

访问数组

数组里面有很多的元素,需要告知PHP到底要访问哪一个

就是利用数组名和元素下标组合起来访问,其实就是利用中括号语法

数组名[下标]

60cb7c524fe9489eec02c29c75fc524a.png

注意:不要省略掉下标的引号!如果省略掉了,PHP会先把下标解析成常量,如果找不到这个常量才会解析成普通的字符串!

数组的分类

按照键值之间的对应关系

索引数组

数组元素的键(下标),不用于表示其对应值的含义,仅仅用来表示其所在的位置!

1,典型的,当一个数组的下标全部省略掉的时候,系统会自动分配下标,从0开始,依次递增!表示该数组的索引位置!

e0c60606a4a951295b6ef7773d975f2c.png

2,当省略掉部分元素的下标的时候,系统也会自动给这些元素分配索引下标,其索引值是前面最大整型下标的值加1,如果前面没有索引下标,就从0开始分配!

705c39f892bae1765f9ec77f6a5ae1d8.png

c95f93a9729ce55083431ff5bcbc5b70.gif

d22ac092c9a96e52411e96fbfcf317b9.png

注意:如果两个元素的下标值相同,那么后面元素的值会覆盖前面的,要注意不要造成元素的“丢失”!

3,默认的,数组的下标只能是整型或字符串类型,虽然语法上运行写其他的类型,但是在创建数组的时候会自动转换成整型或字符串型!

888e10b1a7594ad573fea6d0bae8e6f1.png

关联数组:指数组元素的键和值之间,存在着一定的对应关系,也就是元素的键能够表示元素的值的含义!

注意:整型下标的数组不一定就是索引数组,关键是看元素的下标与值之间是否存在一定的对应关系!

按照数组的维度。

一维数组:简单来说,一个数组内所有的元素的值都不是数组类型,就是一位数组

多维数组:超过一维都是可以叫多维,是指一个数组中的元素的值有部分或者全部又是一个数组

f14d9e66167a3ce1c96aeefc41063b9d.png

其实,从严格意义上来说,PHP中并不存在传统意义上的多维数组,而是其中的某些运算恰好又是一个数组而已!

注意:以上所有的分类,都只是逻辑上的分类,都只是元素的键和元素的值的类型不同而已,从语法上来说,所有的数组元素的本质都是键值对!

foreach遍历

所谓的遍历,就是依次得到并处理数组的每个元素!

典型的,就是使用foreach对数组进行遍历!

基本语法

8e40ed89f717bf93d21fa758f2918e02.png

如果,此时对元素的键不需要操作(没有实际意义),可以省略掉键变量的那部分:

7f18d2d62f27ee991e0a7814839fef88.png

bbd702d9d2ef7bfa02a026cc40e05bd6.png

几个细节

注意:foreach遍历的是对原数组的拷贝,所以有以下的几个语法上的细节:

1,保存值的变量$value,和原数组之间默认的是值传递关系,所以,如果在遍历的时候对数组进行修改,不会影响到原数组的改变!

c41cb83382ec3164a62213d70e1180e6.png

2,$value与原数组之间也可以是引用传递,就是在遍历的时候在$value的前面加上&即可!

6f5995ee0974e584cdb3d05d756b6da3.png

3,仅仅是数组值的变量才支持引用传递,键变量不支持

4d451f4d78a1776c3a8e2697f2ee9728.png

用for循环在实现数组的遍历

37670345b1295238ee0c3e8ab0f33ae8.png

注意:上面的for循环遍历,只适合下标连续的索引数组,因为,我们是先得到数组的下标,然后再利用下标去访问数组的元素的值,但是,这种遍历不算是真正意义上的遍历,因为下标是元素的一部分,一定是先有元素,再有下标!

那么,为什么foreach可以直接找到数组元素的值呢?本质的原因是数组的指针!

数组的指针

其实,在每个数组内,都存在一个数组元素的指针(看不见摸不着),它负责指向某个数组的内的某个元素,被指向的这个元素称之为当前元素!

默认的,如果定义完一个数组后什么都不做,这个指针就应该指向该数组的第一个元素!

bb17a0983686fc695f35796397166647.png

注意:既然指针指向了一个元素,而元素又是由键值对构成的,所以,我们应该可以获取到当前元素的信息,由两个函数分别完成的:

key:语句形式就是key(数组名),作用是获取数组当前元素的键!

44f1a9a7f5faff8684d3b9ac737f94b3.png

current:语句形式就是current(数组名),作用是获取数组当前元素的值!

6cc33de45ca97099732acac06ce39db5.png

数组的指针总不能一直指向某一个元素不动

next:语句形式就是next(数组名),作用是将当前数值的指针下移一位!(最多只能移到到数组的最后一个元素)

45f02bfd92af5b4b6573bd2f7f22cadb.png

思考:如何利用上面的几个函数,用for循环实现类似于foreach的功能?

0efa6e46a0d68f20ebfa66406a8bf462.png

但是,以上还不能完全实现foreach的功能,因为如果在进入for循环之前对指针的位置做了修改,那么for循环的时候数组的指针就可能非法!

adbea83bfc40cbfe8c81af3525f603b3.png

此时,需要在进入for循环之前对数组的指针进行重置,也就是确保在循环开始之前数组的指针指向第一个元素!

是通过另外一个函数来实现的:

reset:语法是:reset(数组名) 作用是:对数组的指针进行初始化(重置,指向第一个元素)

052fbb690e9436221d71d11c52c8cc3e.png

foreach原理

foreach流程图

02d4b3ac21d616f179f9ff70f4dcf126.png

数组指针相关函数

prev:向上移动一次指针,previous的缩写

end:也是重置指针,不过是将指针重置到最后的一个元素

注意:如果指针已经非法,就不能再做相对移动了(next、prev),但是可以做绝对移动(reset、end)

while-each-list遍历

each:还有一个功能非常强大的函数,就是each函数,语法是:

each(数组名)

它的作用:同时兼备了key、current、next函数的功能,既可以获得当前元素的信息(键和值),又可以向下移动指针!

43224c6d705f0aad06199cbb26371f21.png

注意each的返回值:

把当前元素的键和值当成是另外一个数组元素的值重新创建了一个新的数组!

而且,为这两个值(原数组的键和值)分别创建了一个索引下标和关联下标:

其中关联的:key表示原数组当前元素的键,value表示原数组当前元素的值!

其中索引的:0表示原数组当前元素的键,1表示原数组当前元素的值!

所以:如果要访问原数组当前元素的键:$each[0]或$each[‘key’]

如果要访问原数组当前元素的值:$each[1]或$each[‘value’]

d6d84b29cea27df1814c5e28eff6c254.png

当然,此时依然需要在遍历之前对数组的指针进行初始化!

3e742ff1568adcb5a6d9f0e1d8b61c52.png

此时,与foreach相比,唯一的不同就是不能直接在循环体内使用当前元素的键变量和值变量,可以用list函数来解决

list 作用:利用一个索引数组,一次性为多个变量进行赋值!

98c0f2667917ca7a8fb30ab848f3c402.png

原理:先找到后面数组中哪个元素的下标为0,然后赋值给前面list中的第一个变量,然后找后面数组中的那个元素的下标为1,再赋值给前面list中的第二个变量,依次类推!

f4ed10cd13ea61af7e9133a03c2ea3b0.png

3b3ccbc653765bd1dafcb1bc6af7001f.png

5fc7ed0e1161c6d785e97d07b74dc5a9.png

金刚汤圆
关注 关注
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
最好的机器学习语言Julia
小亮Machine Learning
10-10 1万+
最好的机器学习语言Julia 今天是2018年10月10号,据网友说今天是世界卖萌日,那今天小亮也就卖卖萌——最好的机器学习语言Julia。 今天这篇博客编程语言方向的,介绍一种语言给大家,她叫Julia!小亮主要与大家分享一下这门小亮认为是机器学习领域最好的语言,没有之一!!!更好地让大家学习Machine Learning这个领域,早日当上白富美/高富帅哈! 笔者信息:Next_Legend...
学习编程语言最好的方法是什么
安晓辉生涯——聚焦程序员的职业规划与成长
04-07 2万+
每个人都有自己独特的学习模式,我们要做的第一件事,就是发现自己的学习模式。你的方式是什么?
世界上最好的语言,来了解一下?(学习大纲已备齐)
程序人生的博客
03-21 2204
点击上方“程序人生”,选择“置顶公众号”第一时间关注程序猿(媛)身边的故事在过去的几年中,PHP 工程师一直都是编程语言中最炙手可热的职位之一,因为作为老牌后端编程语言PHP 在全球市场占有率非常高,仅次于 Java,从各个招聘网站的数据上来看 PHP 开发的职位非常多,薪资水平也非常不错。那么,作为你一个合格的 PHP 工程师,以下是十点重要技能,你都点亮了吗?LinuxNginxMySQL/
最难的10大编程语言排行榜,Java只排第三,第一出乎意料
weixin_34004576的博客
12-14 1万+
2018年12月的TIOBE编程语言排行榜已经出炉,Python重回前三,Go语言跌出前十,Visual Basic.NET涨幅明显,保持第五名。TIOBE排行榜是根据互联网上有经验的程序员、课程和第三方厂商的数量,并使用搜索引擎(如Google、Bing、Yahoo!)以及Wikipedia、Amazon、YouTube统计出排名数据,反映某个编程语言的热门程度。在这全世界排名前二十的所有编程...
者最容易的六种编程语言
热门推荐
#7的博客
06-27 13万+
编程关键是要找到一种合适的语言。下面是为大家介绍初者,最容掌握的六种编程语言。1.JavaScript可别将JavaScript与Java混为一谈。Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,即使是开发简单的程序,也必须设计对象;而JavaScript是一种直译式脚本语言,它本身提供了非常丰富的内部对象供设计人员使用。JS之所以特别受欢迎,是由于它是跨平台的。由于JS本身在浏...
为什么世界上最好的语言php,我们来谈谈PHP为什么是世界上最好的语言
weixin_36413247的博客
03-19 4199
首先这个名誉的出处就是出自PHP的官方文档!!!PHP is the best language for web programming, but what about other languages?PHP是网络编程最好的语言,但其他语言又怎样呢?后来由于php的发展,让php成为了很好的语言,官方也毫不逊色的发表了新的言论:”Because PHP is the best language e...
PHP语言25周年,PHP世界上最好的语言
WXiangQian
06-09 3457
1995年6月8日,PHP 1.0版本正式问世,目前已经更迭到7.4版本,PHP 8.0 Alpha1版本也有望于今年6月中旬发布。25周年之际,杜蕾斯官方微博发文庆祝:“#PHP语言25周年#不管PHP是不是世界上最好的语言,反正—— print(“durex is the best”)” 公众号发文: 截至2020年6月9日公众号留言排名如下: 由此来看,Java赢了 微博发文: 许多网友讨论:杜蕾斯还是不懂编程啊,PHP为什么不用echo 答:有网友认为,杜蕾斯的小编可能不懂PHP,就是.
关于php的梗儿_php世界上最好的语言是什么梗?
weixin_39595430的博客
12-21 3536
1、php语言是什么?PHP语言作为一种语言程序,其专用性逐渐在应用过程中显现,其技术水平的优劣与否将直接影响网站的运行效率。其特点是具有公开的源代码,在程序设计上与通用型语言,如C语言相似性较高,因此在操作过程中简单易懂,可操作性强。同时,PHP语言具有较高的数据传送处理水平和输出水平,可以广泛应用在Windows系统及各类Web服务器中。如果数据量较大,PHP语言还可以拓宽链接面,与各种数据库...
PHP语言,是全世界最好用的编程语言!“
Baoyan_cs的博客
10-05 4746
一、 初识PHP 如果你是一名程序猿,那么你一定听过这样一个梗“PHP语言,是全世界最好用的编程语言!“ 其实,这个梗最早不是出自别处,而是PHP官方哦! PHP is the best language for web programming, but what about otherlanguages? ——PHP官方文档 2001年,PHP官方号称PHP是全世界最好的web开发语言PHP(外文名:PHP:Hypertext Preprocessor,中文名:“超文本预处理器”)是一
php世界上最好的语言 ctf+代码审计+加密函数绕过
NLost
02-26 4539
前端攻城狮跑路了,不过PHP是最好的语言 ?? 还是直接审计代码吧 <?php show_source(__FILE__); @include_once 'flag.php'; //前端攻城狮跑路了,不过PHP是最好的语言 $a = $_GET['a']; $b = $_GET['b']; $good = false; if (sha1($a)===sha1($b)) { $good = true; } else die('bypas
200多套汇报总结PPT模板-最新出炉.zip
10-23
200多套汇报总结PPT模板-最新出炉.zip
springboot图书管理系统(附源码+数据库)00296
10-23
1.图书管理模块(增删改查)对象属性包含名字、类别、价格;中图分为5大部类(设计数据库时每个大类加一些图书) 2.读者信息(增删改查)对象属性包含:姓名、手机号、邮箱、身份证号 3.借阅信息(增删改查) 4.密码管理 5.黑名单(身份证为主键) 6.其他正常功能都加 7.人脸识别登录
保研申请材料清单excel
最新发布
10-23
一个资料清单EXCEL,希望对你有帮助
汇编语言ppt.zip
10-23
汇编语言ppt.zip
Kubernetes系统精讲 Go语言实战K8S集群可视化--第4章 【核心知识+原理分析】Pod参数详解.zip
10-23
Kubernetes系统精讲 Go语言实战K8S集群可视化--第4章 【核心知识+原理分析】Pod参数详解
熵平衡匹配法code和数据-最新出炉.zip
10-23
熵平衡匹配法code和数据-最新出炉.zip
Practical_5.zip
10-23
Practical_5.zip
全国与分省土壤矢量+土壤类型-最新出炉.zip
10-23
全国与分省土壤矢量+土壤类型-最新出炉.zip
如何通过R代码设置RStudio全局环境
10-23
在使用RStudio进行数据分析和编程时,配置好合适的工作环境能够极大地提升工作效率和代码的可读性。本文将介绍如何通过R代码来设置RStudio的全局选项,以帮助用户自定义和优化工作流。我们将重点讲解如何使用options()函数来调整R的默认行为,包括防止字符串自动转化为因子、设置输出数字的有效位数、控制警告信息的显示频率、以及调整输出宽度等。此外,还会介绍如何通过setwd()函数设置工作目录,以便在文件读取和写入操作时更加高效。文章还将展示如何禁用科计数法输出,并通过Sys.setenv()函数更改消息提示语言,使输出信息更符合用户的需求。通过这些设置,用户可以根据自身需求构建一个符合个人偏好的编程环境,避免许多初者常见的问题,如数据类型转换的困惑和不必要的警告信息干扰。最后,通过savehistory()命令,用户可以记录并保存自己的历史命令,方便后续工作复用。这些代码不仅适用于初者,还能为经验丰富的用户提供优化RStudio环境的方案。
2024年10月21日全A逐笔tick数据
10-23
全A逐笔tick数据 包含股票,可转债,热门etf,逐笔tick数据
写文章

热门文章

  • su自带模型库怎么打开_su自带模型库怎么打开(3d max的模型如何用sketchup打开?)... 13146
  • 条件极值例题_条件极值的求法(函数极值的求法例题) 8785
  • 服务器系统 usb不识别u盘,无法识别的usb设备怎么办(实测成功解决U盘修复教程)... 7665
  • 打开html为什么显示403,禁止访问403是什么意思 网页提示403怎么解决 6092
  • 群晖 mysql 自动备份_通过群晖NAS备份文档和数据库的设置方法 5075

大家在看

  • Catia中文版百度云下载与安装(保姆级教程)
  • ATAM软件架构评估 387
  • 招聘技术研发类岗位,HR会考察候选人哪些方面?
  • JAVA开源项目 基于Vue和SpringBoot校园美食分享平台
  • SIP 业务举例之 Call Hold(呼叫保持)

最新文章

  • FFmpeg开发笔记(五十七)使用Media3的Transformer加工视频文件
  • java如何将heic格式转化jpg
  • 软件测试学习笔记丨测试用例流程设计
2024年5篇
2021年141篇
2020年21篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

玻璃钢生产厂家河北艺术商场美陈现价冀州玻璃钢胸像雕塑天津定制玻璃钢雕塑哪家便宜玻璃钢景观雕塑哪家有阜阳玻璃钢雕塑制造厂辽宁园林玻璃钢雕塑吉林龙虾玻璃钢雕塑制造玻璃钢蔬菜雕塑低价出售云南景观玻璃钢雕塑制作绍兴动物玻璃钢雕塑批发玻璃钢蔬菜雕塑厂家电话河北定制玻璃钢雕塑性价比出众商场美陈音乐盒玻璃钢雕塑上色视频玻璃钢花盆雕塑什么好三山玻璃钢花盆花器河南水果玻璃钢雕塑定做价格玻璃钢熊猫雕塑图片玻璃钢牙齿雕塑玻璃钢仿真狼雕塑辽宁玻璃钢海豚雕塑价格青岛玻璃钢花盆价钱商场美化美陈方案阆中玻璃钢花盆花器南通如东玻璃钢玻璃钢雕塑浙江超市商场美陈厂家直销澳门商场美陈雕塑平谷玻璃钢花盆圣诞圣诞商场美陈高青县玻璃钢雕塑厂香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化