array,数据的组合,指将一组数据(多个)存储到一个指定的容器中,用变量指向该容器,然后可以通过变量一次性得到该容器中的所有数据。
在PHP中系统提供多种定义数组的方式
使用array关键字:最常用的
$变量 = array(元素1,元素2,...);
可以使用中括号来包裹数据:
$变量 = [元素1,元素2,...];
隐形定义数组:给变量增加一个中括号,系统自动变成数组
$变量[] = 值1;
$变量[下标] = 值;
//中括号里面的内容称之为下标key,该下标可以是字母(单词)或者数字,与变量命名的规则相似
可以整数下标或者字符串下标
如果数组下标都为整数:索引数组
如果数组下标都为字符串:关联数组
不同下标可以混合存在:混合数组
数组元素的顺序以放入顺序为准,,跟下标无关
数组下标的自增长特性:从0开始自动增长,如果中间手动添加下标较大的,那么后面的自增长元素从最大的值+1开始
特殊值下标自动转换
布尔值:true和false
空:NULL
PHP中数组元素没有类型限制
PHP中数组元素没有长度限制
注释:PHP中的数组是很大的数据,所以存储位置是堆区,为当前数组分配一块连续的内存
数组里面的元素又是数组
数组里面的都是一维数组
//定义二维数组
$info = array(
array();
array();
......
);
?多维数组
在PHP中没有维数限制
异形数组
数组中的元素不规则,有普通基本变量也有数组
普通数组数据的访问都是通过数组元素下标来实现访问,如果说数组中所有的数据都需要依次输出出来,就需要我们使用一些简化的规则来实现自动获取下标以及输出数组元素。
foreach遍历语法
//基本语法
foreach($数组变量 as [$下标 =>} $值){
//语句
//通过$下标访问元素的下标,通过$值访问元素的值
}
//通常:如果是关联(字母下标),就需要下标
//在进行数据存储定义的时候,通常二维数组不会两个维度的key下标都为数字,一般是一维为数字(无意义),二维为字符串(数据库表字段),所以在进行遍历的时候,通常是只需要针对一维进行遍历,取得二维数组元素,然后二维数组元素通过下标去访问。
foreach遍历原理
本质是数组的内部有一颗指针,默认是指向数组元素的第一个元素,foreach就是利用指针去获取数据,同时移动指针。
for循环遍历数组
基于已知边界条件(起始和结束)然后有条件的变化(规律)。因此:for循环遍历数组有对应条件
//for循环遍历数组
for($i = 0,$len = count($arr); $i < $len; $i++){
//语法体
}
while配合each和list遍历数组
while是在外部定义边界条件,如果要实现可以和for循环
each函数使用:each能够从一个数组中获取当前数组指针所指向的元素的下标和值,拿到之后将数组指针下移,同时将拿到的元素下标和值以一个四个元素的数组返回,如果each取不到结果(数组指针移动到最后),返回 false。
list函数使用:list是一种结构,不是一种函数(没有返回值),是list提供一堆变量去从一个数组中取得元素值,然后依次存放到对应的变量中(批量为变量赋值:值来源于数组):list必须从索引数组中去获取数据,而且必须从0开始。
排序函数:对数组元素进行排序
sort():对数组进行排序,将数组元素从低到高排序(顺序排序),下标重排
rsort():逆序排序
asort():顺序排序(下标保留)
arsort():逆序排序(下标保留)
ksort():顺序排序(按照键名)
krsort():逆序排序(按照键名)
shuffle():随机打乱数组元素
指针函数:
reset():重置指针,将数组指针回到首位
end();重置指针,见数组指针指向最后一个元素
next():指针下移,取得下一个元素的值
prev():指针上移,取得上一个元素的值
current():获取当前指针对应的元素值
key():获取当前指针对应的下标值
其他函数:
count():统计数组中元素的数量
array_push():往数组中添加一个元素(数组后面)
array_pop():从数组中取出一个元素(数组后面)
array_shift():往数组中添加一个元素(数组前面)
array_unshift():从数组中取出一个元素(数组前面)
array_reverse():数组元素反过来
in_array():判断一个元素在数组中是否存在
array_key():获取一个数组的所有下标,返回一个索引数组
array_values():获取一个数组的所有值,返回一个索引数组
原文:https://www.cnblogs.com/Joshua-Zhang/p/12262236.html