PHP 数组
数组是一种集合的数据结构。在大部分的编程语言里,集合类型通常都是大于两种,常见如 列表、 哈希 等... 而在 PHP 里面,PHP 的数组既充当了列表的角色,也充当了哈希的角色,是一种独具特色的集合数据类型。
定义数组
例如我们有这样一个需求,我们想用一个变量,存储一个班级的同学信息,1号~蔡同学、 2号~陈同学、 3号~王同学 ... 这时我们就需要使用到数组这种数据结构。
// 定义数组
$students = array('1号'=>'蔡同学' , '2号'=>'陈同学', '3号'=>'王同学');
// 打印数组 | 数组的打印需要使用 print_r() 函数,我们可以得到下面这组信息
print_r($students); // Array ( [1号] => 蔡同学 [2号] => 陈同学 [3号] => 王同学 )
key | value
我们上面定义的数组,一个数组的单位有两部分组成,key 和 value,例如 '1号'=>'蔡同学' 这部分,key 就是 1号,value 就是 蔡同学。 通过 key 可以获取到 value。
// 1号同学的姓名
echo $students['1号']; // '蔡同学'
// 2号同学的姓名
echo $students['2号']; // '陈同学'
// 修改 3号 同学的姓名
$students['3号'] = '黄同学';
echo $students['3号'];
// 目前我们的 students 只有3组数据,如果我门想再增加一个? 可以通过下面这种方式:
$students['4号'] = '张同学';
print_r($students);
// Array ( [1号] => 蔡同学 [2号] => 陈同学 [3号] => 王同学 [4号] => 张同学 )
默认的 key
如果我们定义数组的时候,没有指定 key,那么数组会自动为我们分配一个 key,从 0 开始。
$arr = ['a', 'b', 'c', 'd', 'e'];
print_r($arr); // Array ( [0] => a [1] => b [2] => c [3] => d [4] => e )
echo $arr[0]; // a
echo $arr[3]; // d
foreach
如果一个数组很长很长,假设有 1万个 key=>value, 我们一个一个通过索引的获取就很费时间。 foreach 的作用就是用于循环打印数组,这样无论数组多次都是很方便的操作。
foreach($students as $key=>$value) {
echo $key;
echo $value;
// 第一次循环
// 1号
// 蔡同学
// 第二次循环
// 2号
// 陈同学
// ...
}
二维数组
二维数组的概念是在数组里面在套数组,理论上,这样的数组套数组的概念可以无限下去,也就是多维的数组,我们举下面的例子。
$students = array('1号'=>array('name'=>'蔡同学', 'age'=>17), '2号'=>array('name'=>'陈同学', 'age'=>18));
// 上面定义的二维数组,是这样的一种数据结构
Array
(
[1号] => Array
(
[name] => 蔡同学
[age] => 17
)
[2号] => Array
(
[name] => 陈同学
[age] => 18
)
)
// 同样的获取 key 也可以是二维的,我们获取 key 0 下面的 key 0
echo $students['1号']['name']; // '蔡同学'