数组
数组
数组就是一组数据的集合,就是用于存储多个具有一定关系的多个变量。对应现实中的具有行列结构的数据。
数组的定义
方式1:使用array()数组结构
示例:
方式2:使用简单语法结构'[]',注意:此种语法只能在5.4及其以上的版本中使用
示例:
方式3:动态添加数元素的方式
示例:
数组的访问
在数组中唯一标识元素的是下标(键名),
语法:
$数组名[下标/键名]
示例:
PHP数组的特点
1、php中数组可以直接使用,不需要预先定义。
2、php中数组的长度不需预先定义。
3、php中数组的元素可以是任意数据类型。
4、php中数组的下标可以不连续
PHP中数组的分类
根据数组元素的下标是数值、字符还是数值与字符混合,可以将PHP中的数组分为,索引数组、关联数组、混合数组
索引数组:
数组元素的下标是整数,
关联数组:
数组元素的下标是字符。关联数组的特点:每个元素都由两部分组成,键名与键值。
关联数组的创建:
语法:
$数组名 = array(键名=>键值,键名=>键值.....);
示例:
数组的遍历
遍历:就为了某种需求,对数组中所有的元素都进行一次访问。
使用for循环结构,条件是所遍历数组的元素的下标必须是连续的。
示例:
php为我们提供了专用于遍历数组的语法结构:foreach
语法:
foreach($arr as $v1【=>$v2】){
//循环体
}
说明:
foreach是对数组的指针进行操作(读取每一个元素的键名与键值,并赋值给$v1与$v2,之后还要将指针下移)
示例:
foreach原理
代码:
$arr = ['0'=>10,'3'=>20,'nine'=>30,'10'=>40];
foreach($arr as $v1 => $v2){
echo "键名为:$v1"."键值为:$v2".'<br/>';
}
原理:
1、编译源代码,
2、执行
2.1、首先在栈区开辟一个空间存储$arr
2.2、在存储数据时,发现赋值号右边是一个数组,那么就是在堆区开辟个空间用于存储数组的数据
2.3、将数组的内存 地址,传递给栈区中的$arr
3、执行foreach
3.1、在栈区开辟两个空间存储$v1与$v2
3.2、读取当前数组指针所指向的元素,将当前元素的键名与键值,赋值给变量$v1与$v2
3.2.1、会在全局区开辟空间用于存储数据0与10
3.3、将数组的指针下移一行
3.4、执行下一次循环,与3.2 3.2.1相同的操作,当前循环执行结束,将数组指针再下移一行。
3.5再次循环
3.6再次循环,循环结束,指针再下移一行
3.7再次循环时,发现没有数据,那么直接结束循环结构。
图解:
数组相关函数
each()
主要用于每次读取数组当前指针所指向的元素(读取一个元素的)键名与键值,并组织混合数组返回。将指针下移一行。
示例:
list();
语法:
list(变量列表)=$数组名;
说明:
- list是一种语法结构,不是一个函数
- 作用将数组中的元素依次赋值给list后的变量列表中的变量
- list只能获取索引下标的元素
示例:
each与list遍历索引数组
示例: