- PHP 菜鸟教程
- PHP - 教程
- PHP - 简介
- PHP - 安装
- PHP - 历史
- PHP - 功能
- PHP - 语法
- PHP - Hello World
- PHP - 注释
- PHP - 变量
- PHP - echo 语句和 print 语句
- PHP - var_dump() 函数
- PHP - $ 和 $$ 变量
- PHP - 常量
- PHP - 魔术常量
- PHP – 数据类型
- PHP - 类型转换
- PHP - 类型戏法
- PHP - 字符串
- PHP - 布尔值
- PHP - 整数
- PHP - 文件和I/O
- PHP – 数学函数
- PHP - Heredoc & Nowdoc
- PHP - 复合类型
- PHP - 文件包含
- PHP - 日期和时间
- PHP - 标量类型声明
- PHP - 返回类型声明
- PHP 运算符
- PHP - 运算符类型
- PHP - 算术运算符示例
- PHP - 比较运算符示例
- PHP - 逻辑运算符示例
- PHP - 赋值运算符示例
- PHP – 字符串运算符
- PHP – 数组运算符
- PHP – 条件运算符示例
- PHP - Spread 运算符
- PHP - Null 合并运算符
- PHP - Spaceship 运算符
- PHP 控制语句
- PHP – 决策
- PHP - If…Else 语句
- PHP - Switch 语句
- PHP – 循环类型
- PHP - For 循环
- PHP - Foreach 循环
- PHP - While 循环
- PHP - do...While 循环
- PHP - Break 语句
- PHP - Continue 语句
- PHP 数组
- PHP - 数组
- PHP - 索引数组
- PHP - 关联数组
- PHP - 多维数组
- PHP - 数组函数
- PHP - 常量数组
- PHP 函数
- PHP - 函数
- PHP - 函数参数
- PHP - 按值调用
- PHP - 按引用调用
- PHP - 默认参数
- PHP - 命名参数
- PHP - 变量参数
- PHP - 返回值
- PHP - 传递函数
- PHP - 递归函数
- PHP - 类型提示
- PHP - 变量范围
- PHP - 严格类型
- PHP - 匿名函数
- PHP - 箭头( Arrow )函数
- PHP - 变量处理函数
- PHP - 局部变量
- PHP - 全局变量
- PHP 超全局变量
- PHP - 超全局变量
- PHP - $GLOBALS 变量
- PHP - $_SERVER 变量
- PHP - $_REQUEST 变量
- PHP - $_POST 变量
- PHP - $_GET 变量
- PHP - $_FILES 变量
- PHP - $_ENV 变量
- PHP - $_COOKIE 变量
- PHP - $_SESSION 变量
- PHP 文件处理
- PHP - 文件处理
PHP - 数组
数组是一种数据结构,它将一个或多个数据值存储在单个变量中,这些数据值之间具有某种关系。例如,如果你想在一个班级中存储 10 名学生的分数,那么定义一个 10 长度的数组很容易,而不是定义 10 个不同的变量。
PHP 的数组与 C语言的数组的行为略有不同,因为 PHP 是一种动态类型语言,而 C 是一种静态类型语言。
- PHP 中的数组是将值与键相关联的有序映射。
- PHP 数组可用于实现不同的数据结构,例如堆栈、队列、列表(向量)、哈希表、字典等。
- 数组元素的 value 部分可以是其他数组。这一事实可用于实现树数据结构和多维数组。
在 PHP 中有两种方法可以声明数组。一种是使用内置的 array() 函数,另一种是使用更短的语法,其中数组元素放在方括号内。
array() 函数
内置的 array() 函数使用给定的参数并返回数组类型的对象。一个或多个逗号分隔的参数是数组中的元素。
array(mixed ...$values): array
括号中的每个值可以是单数值(可以是数字、字符串、任何对象甚至其他数组),也可以是键值对。键与其值之间的关联用 “=>” 符号表示。
例子
$arr1 = array(10, "asd", 1.55, true);
$arr2 = array("one"=>1, "two"=>2, "three"=>3);
$arr3 = array(
array(10, 20, 30),
array("Ten", "Twenty", "Thirty"),
array("physics"=>70, "chemistry"=>80, "maths"=>90)
);
使用方括号 [ ]
除了 array() 函数,逗号分隔的数组元素也可以放在方括号内以声明数组对象。在这种情况下,元素也可以是奇异值、字符串或其他数组。
$arr1 = [10, "asd", 1.55, true];
$arr2 = ["one"=>1, "two"=>2, "three"=>3];
$arr3 = [ [10, 20, 30],
["Ten", "Twenty", "Thirty"],
["physics"=>70, "chemistry"=>80, "maths"=>90] ];
PHP 数组类型
有三种不同类型的数组,每个数组值都使用称为数组索引的 ID 进行访问。
- 索引数组 : 仅是值集合的数组称为索引数组。每个值都由从 “0” 开始的位置索引标识。值以线性方式存储和访问。
- 关联数组 : 如果数组是键值对的集合,则将其称为关联数组。对的关键组件可以是数字或字符串,而值部分可以是任何类型。关联数组将元素值与键值相关联,而不是按严格的线性索引顺序存储。
- 多维数组 : 如果索引数组或关联数组中的每个值本身都是数组,则称为多维数组。使用多个索引访问值
注意: 函数参考 PHP 数组函数 中给出了内置数组函数
可能要注意的是,PHP 内部将上述任何类型本身视为关联数组。对于索引数组,其中每个值都有 index,则索引本身就是其键。var_dump() 函数揭示了这一事实。
例子
在此示例中,arr1 是一个索引数组。但是,var_dump() 显示任何对象的结构化信息,显示每个值都将其索引作为其键。
<?php
$arr1 = [10, "asd", 1.55, true];
var_dump($arr1);
?>
它将产生以下输出 -
array(4) {
[0]=>
int(10)
[1]=>
string(3) "asd"
[2]=>
float(1.55)
[3]=>
bool(true)
}
[0]=>
int(10)
[1]=>
string(3) "asd"
[2]=>
float(1.55)
[3]=>
bool(true)
}
例子
同样的原则也适用于多维索引数组,其中数组中的每个值都是另一个数组。
<?php
$arr1 = [
[10, 20, 30],
["Ten", "Twenty", "Thirty"],
[1.1, 2.2, 3.3]
];
var_dump($arr1);
?>
它将产生以下输出 -
array(3) {
[0]=>
array(3) {
[0]=>
int(10)
[1]=>
int(20)
[2]=>
int(30)
}
[1]=>
array(3) {
[0]=>
string(3) "Ten"
[1]=>
string(6) "Twenty"
[2]=>
string(6) "Thirty"
}
[2]=>
array(3) {
[0]=>
float(1.1)
[1]=>
float(2.2)
[2]=>
float(3.3)
}
}
[0]=>
array(3) {
[0]=>
int(10)
[1]=>
int(20)
[2]=>
int(30)
}
[1]=>
array(3) {
[0]=>
string(3) "Ten"
[1]=>
string(6) "Twenty"
[2]=>
string(6) "Thirty"
}
[2]=>
array(3) {
[0]=>
float(1.1)
[1]=>
float(2.2)
[2]=>
float(3.3)
}
}
访问 array 元素
要访问给定数组中的任何元素,你可以使用 array[key] 语法。
例子
对于索引数组,请将索引放在方括号内,因为索引本身无论如何都是键。
<?php
$arr1 = [10, 20, 30];
$arr2 = array("one"=>1, "two"=>2, "three"=>3);
var_dump($arr1[1]);
var_dump($arr2["two"]);
?>
它将产生以下输出 -
int(20)
int(2)
int(2)
我们将在后续章节中更详细地探讨 PHP 数组的类型。