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 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!