一、基本概念

数组:array,数据的组合。指将一组数据(多个)存储到一个指定的容器中,用变量指向该容器,然后可以通过变量一次性得到该容器中的所有数据。

二、多维数组

数组里面的元素又是数组
1. 二维数组:数组中元素都是一维数组
2. 多维数组:在第二维的数组元素中可以继续是数组,在PHP中没有维度限制(PHP本质并没有二维数组)。但是不建议使用超过三维以上的数组,会增加访问的复杂度降低访问效率
3. 异形数组(不规则数组):数组中的元素不规则,由普通基本变量也有数组。在实际开发中并不常用,尽量让数组元素规则话(便于访问)

三、遍历数组

  1. 遍历的基本含义
    普通数组数据的访问都是通过数组元素的下标来实现访问,如果说数组中所有数据都需要一次输出出来,就需要我们使用一些简化的规则来实现自动获取下标及输出数组元素

foreach遍历

语法

foreach($arr as $k => $v) {
    echo $k.'===>'.$v;
}

原理

本质是数组的内部有一颗指针,默认只想数组元素的第一个元素,foreach就是利用指针去回去数组,同时以动指针

for循环遍历

// 数组特点: 索引数组,下标规律

for($i = 0, $len = count($arr);$i < $len; $i++) {
    echo $i . '=>' . $arr[$i];
}

while配合each和list遍历数组

while是在外部定义边界条件,如果要实现可以和for循环一样

each函数的使用:each能够从一个数组中获取当前数组指针所指向的元素的下标和值,拿到之后将数组下标下移,同时将拿到的元素下标和值以一个四个元素的数组返回:
0下标 -》 取得元素的下标值
1小标 -》 取得元素的值
key下标 -》 取得元素的下标值
value下标 -》 取得元素的值

如果each取不到结果,返回false
list函数的使用:list是一种结构,不是一种函数(没有返回值),是list提供一堆变量屈从一个数组中取得元素值,绕后一次存放到对应的变量当中(批量为变量赋值:值来源于数组):
list必须从索引数组中取获取数据,必须从0开始

list与each配合特别好:each一定有两个下标0和1
list($first, $second) = each($arr); //是一种复制运算,可以得到false结果

四、数组排序函数

都是按照ASCII码进行排序
sort():顺序排序(下标排序)
rsort():逆序排序
asort():舒徐排序(下标保留)
arsort():逆序排序
ksort():顺序排序,按键名(下标)
krsort():逆序排序
shuffle():打乱,数组下标重排

五、数组指针函数

reset():重置指针,将数组指针回到首位
end():重置指针,将数组指针指到最后一个元素
next():指针下移,取得下一个元素的值
prev():指针上移,取得上一个元素的值
current():获取当前指针对应的元素值
key():获取当前指针对应的下标值
注意:next和pre会移动指针,可能导致指针离开数组,导致数组不可用,通过next和pre不能回到正确的指针位置。只能通过end或reset进行指针重置

六、数组相关函数

count():统计数组中元素的数量
array_push():往数组中加入一个元素(数组后面)
array_pop():从数组中取出一个元素(数组后面)
array_shift():往数组中取出一个元素(数组前面)
array_unshift():从数组中加入一个元素(数组前面)
array_reverse():数组翻转
in_array():判断一个元素在数组中是否存在
array_keys():获取一个数组的所有下标,返回一个索引数组
array_values():获取一个数组的所有值,返回一个索引数组

Scroll to Top