写点什么

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

作者:迷彩
  • 2022-11-29
    广东
  • 本文字数:1725 字

    阅读完需:约 6 分钟

前言

跌跌撞撞终于更新到了 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 中的字典。在使用数组时,不应期望关联数组的键按特定的顺序排列,每个键都是一个字符串,与一个值相关联并可用于访问这个值。



发布于: 刚刚阅读数: 4
用户头像

迷彩

关注

我的工作是常年写bug|公众号:编程架构之美 2020-06-18 加入

修bug的菜鸟~公众号:“互联网有啥事”已改名为“编程架构之美”

评论

发布
暂无评论
【web 开发基础】PHP中的数组 (41)_php_迷彩_InfoQ写作社区