PHP从零开始系列七(学习笔记):Array(数组)
数组
PHP 中的 array 实际上是一个有序映射。映射是一种把 values 关联到 keys 的类型。此类型针对多种不同用途进行了优化; 它可以被视为数组、列表(向量)、哈希表(映射的实现)、字典、集合、堆栈、队列等等。 由于 array 的值可以是其它 array 所以树形结构和多维 array 也是允许的。
数组的使用
数组的创建和增删改查
// 创建数组
$a = [];
// 增
$a[] = 1;
// 查
echo $a[0];
// 改
$a[0] = 'a';
// 删
unset($a[0]);
数组解构(解包)一
索引数组解构
// 一维数组解构
$array = [1, 2, 3];
[$one, $two, $three] = $array;
echo $one;
echo $two;
echo $three;
// 二维数组解构
$array = [
[1, '张三', '男', 18],
[2, '李四', '女', 19],
[3, '王五', '男', 20],
];
foreach ($array as [$id, $name, $sex, $age]) {
echo "{$id}号用户:$name ,性别:$sex, 年龄:$age<br/>";
};
// 选择性忽略元素解构
$a = [1, 2, 3];
[, , $three] = $a;
echo $three;
关联数组解构
// 字符串key解构
$a = [
'one' => 1,
'two' => 2,
'three' => 3,
];
['one' => $one, 'two' => $two, 'three' => $three] = $a;
echo $one;
echo $two;
echo $three;
// 数字key解构
$array = [1, 2, 3];
[0 => $one, 1 => $two, 2 => $three] = $array;
echo $one;
echo $two;
echo $three;
变量交换
$a = 1;
$b = 2;
// 解构是先把右边的值依次赋值给左边
[$b, $a] = [$a, $b];
echo $a; // 打印 2
echo $b; // 打印 1
数组解构(解包)二
展开运算符(…)
// 展开运算符(...)效果和array_merge()效果一样,只是更逼格了
// php8.1起同时支持索引数组和关联数组
$arr1 = [1, 2, 3];
$arr2 = ['a' => 4];
$arr3 = [...$arr1, ...$arr2];
var_dump($arr3);
我不太理解为啥两种截然不同的用法在官网都叫“数组解包”
本作品采用《CC 协议》,转载必须注明作者和本文链接