什么是 Array ?

根据 PHP 官方网站的说法:

PHP 中的 array 实际上是一个有序映射。映射是一种把 values 关联到 keys 的类型。此类型针对多种不同用途进行了优化; 它可以被视为数组、列表(向量)、哈希表(映射的实现)、字典、集合、堆栈、队列等等。 由于 array 的值可以是其它 array 所以树形结构和多维 array 也是允许的。

我们其实就可以简单的理解为,这个 array 就是一个数组,后面那些列表、哈希表之类的都是通过数组的操作来实现的。这个数组由两个部分组成,一个叫 key (中文叫做键),一个叫 value (就是对应的值),每一个 key 都对应到了一个 value 。为了更方便理解,之后我们都称 array 为数组

如何创建一个数组?

在 PHP 中,我们有很多种方法创建一个数组,这里我们略说一下,我们可以通过 PHP 中的内建的 array() 来建立一个数组,这个方式应该是最常见的方式;另外我们也可以通过简写 [] 来创建一个数组 (注意,此方法在低版本 PHP 不适用):

<?php

$array1 = array(); # 这样创建了一个数组
$array2 = []; # 这样也创建了一个数组

?>

如何获取数组当中的值?

其实在上一讲《PHP 存取表单数据》中我们就有过这样的操作,我们可以通过我们的 key 来获取我们数组中的值,就像以下我们会获取 $_POST 这个数组中 key 为 username 的值。:

<?php

print($_POST['username']);

?>

如何给数组添加值?

其实我们可以通过很简单的赋值来直接添加值到数组当中,在上面我们知道了只要通过 key 就能调用一个数组中的值,同样我们也可以通过 key 来进行赋值。在 PHP 中,如果该 key 在数组中不存在,则会自动创建,我们可以来看一下例子:

<?php

$data = []; # 创建一个空数组
$data['username'] = 'admin';

print($data['username']); # 输出 admin

?>

我们也可以一开始就给数组里面放一些值,我们可以通过 key => value, 的格式来进行对数组的赋值,例如:

<?php

$data = [
    'username' => 'admin',
];

print($data['username']);

?>

数组下标的概念(数字key)

其实 PHP 中的这个 array 是特别的,在 C/C++ 语言中,数组往往是不会拥有一个 key 的,更多的是我们会使用所谓的 下标。下标的概念其实很简单,放到 PHP 中其实就是 key 变成了数字,由 0 开始。

在 PHP 中也不是所有数组都有对应的 key 的,在一些没有定义 key 的数组当中,我们可以通过下标来获取相关的值,例如:

<?php

$data = ['张三', '李四', '王五'];

print($data[0]); # 输出 张三
print($data[1]); # 输出 李四

?>