### 简介
PHP 中的数组实际上是一个有序映射,数组能够在单个变量中存储多个值。
> 映射是个术语,指两个元素的集之间元素相互“对应”的关系。
在 PHP 中,有三种类型的数组
1. **索引数组** = 带有数字 ID 键的数组
1. **关联数组** = 带有指定的键的数组,每个键关联一个值
1. **多维数组** = 包含一个或多个数组的数组
### 语法
#### 定义数组:
##### 1. 自动分配 ID 键
```php
$array = array("bar","foo");
// 自 PHP 5.4 起
$array = ["bar","foo"];
```
用 `print_r()` 调试输出
```php
Array ( [0] => bar [1] => foo )
```
##### 2. 人工分配 ID 键
```php
$array = array(
"foo" => "bar",
"bar" => "foo",
);
// 自 PHP 5.4 起
$array = [
"foo" => "bar",
"bar" => "foo",
];
```
用 `print_r()` 调试输出
```php
Array ( [foo] => bar [bar] => foo )
```
### 键值对 `key => value`
- 数组中可以保存多个数据 ( 值 value ) ,
- 每个数据有唯一的编号 ( 键 key )
- 每个键值对用逗号 `,` 分割
```
定义数组,a,b,c 为数据的 key
$arr = [ ' a ' => 1, ' b ' =>2 , ' c ' =>3 ] ;
也可以不写 key,由 php 自动生成,从 0 开始编号
$arr = [ 1 , 2 , 3 ] ;
```
### 数组 的增删改查
```
$arr = [ ' a ' => 1, ' b ' =>2 , ' c ' =>3 ] ;
// 增
$arr [ ' d ' ] = 4 ;
// 改
// 改跟 增 一样,如果这个键存在就是修改,不存在就是增加
$arr [ ' d ' ] = 4 ;
// 删
unset ( $arr [ ' c ' ] ) ;
// 查
echo $arr [ ' a ' ]
```
### 数组 循环
用 `foreach ( )` 进行循环
```php
$arr = [0, 1 , 2 , 3 , 4 , 5 ];
foreach ($arr as $k => $v){
echo $k , ' =' ,$v . "
";
}
```
输出:
> 0 =0
> 1 =1
> 2 =2
> 3 =3
> 4 =4
> 5 =5