【web 开发基础】PHP中的数组 (41)

举报
迷彩 发表于 2023/07/04 15:34:26 2023/07/04
【摘要】 前言跌跌撞撞终于更新到了PHP的数组,虽然我们现在才介绍到数组的相关内容,但是我们在前面的例子中可能涉及到很多次数组的使用,比如:在文章《【web 开发基础】通过模拟地铁售票系统介绍 PHP 自定义函数之函数的参数 -PHP 快速入门 (26)》中我们列举了模拟地铁站售票系统的代码中就使用到了数组。数组在很多编程语言都数组都是最重要的数据类型之一,同时他还可能是其他数据结构的基础。它在PHP...

前言

跌跌撞撞终于更新到了PHP的数组,虽然我们现在才介绍到数组的相关内容,但是我们在前面的例子中可能涉及到很多次数组的使用,比如:在文章《【web 开发基础】通过模拟地铁售票系统介绍 PHP 自定义函数之函数的参数 -PHP 快速入门 (26)》中我们列举了模拟地铁站售票系统的代码中就使用到了数组。


数组在很多编程语言都数组都是最重要的数据类型之一,同时他还可能是其他数据结构的基础。它在PHP中的应用非常广泛。因为PHP是弱类型的编程语言,所以PHP中的数组变量可以存储任意多个任意类型的的数据,他不像Java或者C这些强类型语言,一个数组中只能存储同种类型的数据,PHP的数组同样可以实现其他强数据类型语言中的堆、栈、队列等数据结构功能。使用数组的目的就是将多个相互关联的数据组织在一起形成集合,作为一个单元使用,以达到批量处理数据的目的。


数组的分类


数组的本质是存储,管理和操作一组变量。数组也是PHP提供的8中数据类型之一。属于复合数据类型。之前的文章介绍过标量变量,一个标量变量就是一个用来存储数值的命名区域。同样数组是一个用来存储一系列变量的值的命名区域。因此,可以使用数组组织多个变量。对数组的操作,也就是对这些基本组成部分的操作。


PHP的数组的功能比许多其他高级语言中的数组更强大。和其他语言不一样的是,可以将多种类型的变量组织在同一个数组中,并且PHP数组存储数据的容量还可以根据里面元素个数的增减自动调整。还可以使用数组完成其他强类型语言里面数据结构的功能,比如C语言中的链表、堆、栈、队列,Java中的集合等,在PHP中都可以使用数组实现。


比如Excel中的数据,相当于一个二维数组。如下图所示:

每一条记录为一个学生信息,每个学生的信息都可以由多个不同的类型数据组成,上图中有4列信息,一共3条记录,如果要在程序中使用这些数据,需要声明12个变量,将每个变量分别存放在一个变量中,以供程序操作。那如果有成千上万条数据呢?如果使用单个变量去存储每个数据,显然不太现实。不仅声明这些变量需要大量的时间,在程序对这些数据进行操作时也会出现混乱,光写变量头都晕了。解决的方法就是使用复合数据类型去声明和存储数据。数组和对象都是PHP中的复合数据类型,都可以实现复合数据的声明和存储,相对来说数组可能稍微简单一些,所以我们通常会使用数组来声明和存储复合类型数据的列表。


使用数组的目的就是将多个相互关联的数据组织在一起形成集合,作为一个单元使用。比如将上面的学生信息分别存放到一个数组中,这样就可以将每个学生4列数据只使用一个复合类型变量声明。组成一个学生信息数组。当对每个学生数组进行处理是,即对每条数据进行处理。还可以将多个学生信息数组存放在一个大的数组中,形成一个学生信息表的数组。数组中存放数组,即形成二维数组。实现了将所有数据使用一个变量来声明的目的,只要对这一个学生信息表的二维数组进行处理,就可以多每个数据进行操作。比如可以使用双层循环将二维数组中的每个数据遍历出来,以用户定义的格式在浏览进行展示。也可以将数组中的数据一起插入数据库中,还可以很方便的将数组转换成XML或json格式文件使用。

存储在数组中的单个值称为数组的元素,每个数组元素都有一个相关的索引,可以视为数据内容在此数组中的识别名称,通常也被称为数组下标。可以用数组中的下标来访问和下标相对应的元素。也可以将下标称为键名,键和值之间的关联通常称为绑定,键和值之间相互映射。在PHP中,根据数组提供下标的不同方式,可将数组分为索引数组关联数组两种

索引数组和关联数组


索引数组的索引值是整数,在大多数编程语言中,数组都具有数字索引,以0开始,依次递增。当通过位置来标识数组元素时,可以使用索引数组。

关联数组以字符串作为索引值。在其他编程语言中非常少见,但在PHP中使用以字符串作为下标的关联数组非常方便,当通过名称来标识数组元素时,可以使用关联数组

如下图:分别使用索引数组和关联数组表示学生信息表中的一条数据。可以很清晰地看到索引数组是一组有序的变量,下标只能是整型数字,默认从0开始索引。而关联数组是键值对的无序集合,类似于Python中的字典。在使用数组时,不应期望关联数组的键按特定的顺序排列,每个键都是一个字符串,与一个值相关联并可用于访问这个值。



【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。