php数组的分类有哪几个

PHP数组只有一种类型,但按键和用法分为三类:①索引数组(整数键,常从0开始);②关联数组(字符串键,类似字典);③多维数组(元素为数组,可嵌套)。底层均为哈希表实现,分类仅为使用习惯。

PHP 数组本质上只有一种类型——数组(array),但根据键的类型和使用方式,开发者习惯性地把它分为三类:索引数组、关联数组、多维数组。

索引数组(Indexed Array)

键是整数,且通常从 0 开始自动递增。适合存储顺序数据,比如列表、结果集。

  • 定义方式:不显式指定键,或用数字键赋值
  • 示例:$arr = ["苹果", "香蕉", "橙子"]; → 键为 0、1、2
  • 注意:即使跳着赋值(如 $a[5] = "x"),PHP 仍视其为索引数组,只是内部可能有空洞

关联数组(Associative Array)

键是字符串(或可转换为字符串的值),用于以“名称→值”的方式组织数据,类似其他语言的哈希表或字典。

  • 定义方式:显式用字符串作键,如 $user = ["name" => "张三", "age" => 25];
  • PHP 内部统一用哈希表实现,所以索引数组和关联数组底层结构相同
  • 判断技巧:array_keys($arr) 全是数字且从 0 连续?那更接近索引风格;含字符串键?就是典型关联数组

多维数组(Multidimensional Array)

数组的元素本身又是数组,可嵌套任意层数,常用于表示表格、树形结构或 JSON 对象的 PHP 表示。

  • 本质是前两类的组合,例如:$matrix = [[1,2], ["a"=>"x", "b"=>"y"]];
  • 没有独立语法,靠嵌套定义;访问需多级下标,如 $arr[0]["name"]
  • 常见于数据库查询结果、API 返回数据、配置文件解析等场景

基本上就这些。PHP 不区分“类型”,只有 array 类型,分类只是为了描述用法习惯。实际开发中,一个数组常常混合使用数字键和字符串键,只要逻辑清晰,PHP 都支持。