数组
定义语法
1 array关键字:最常用的
例如$变量=array(元素1,元素2,元素3)
2 可以使用中括号来包裹数据
例如 $变量=[元素1,元素2]
3 隐形定义数组:给变量增加一个中括号,系统自动变成数组
例如 $变量[]=值1;//如果不提供下标,系统自动生成 0开始
$变量[下标]=值 //下标可以是字母(单词)或者数字,与变量命名的规则相似
数组特点
1 可以整数下标或者字符串下标
如果数组下标都为整数:索引数组
如果数组下标都为字符串:关联数组
2 不同下标混合存在:混合数组
3 数组元素的顺序以放入顺序为准,跟下标无关
4 数字下标自增:0开始,如果中间出现较大的,那么后面从最大元素+1开始
5 特殊值下标的自动转换
布尔值:true false
NULL
6 数组元素没有类型限制
7 数组元素没有长度限制
存储位置在堆区,为当前数组分配一块连续的内存
多维数组
二维数组
异型数组:数组中的元素不规则,有普通基本变量也有数组
遍历数组
访问一维元素
$arr[一维下标]
访问而为元素
$arr[一维下标] [二维下标]
foreach遍历语法
基本语法:
foreach($数组变量 as [$下标 =>] $值)
例如:
在进行数据存储定义的时候,通常二维数组不会两个维度的key都为数字,一般都是一维位数字,二维为字符串(一般为数据库表字段),所以在进行遍历的时候,通常是只需要真对一维进行遍历,取得二维数组元素,然后二维数组元素通过下标去访问
For循环遍历数组
基于已知边界条件,然后有条件的变化
因此:for循环遍历数组有对应的条件
1 获取数组的长度:count(数组)得到数组元素的长度
2 要求数组元素的下标是规律的数字
while配合each和list遍历数组
while是在外部定义边界条件,如果要实现可以和for循环实现
each函数使用:
能够从一个数组中获取当前数组指向的元素的下标和值,拿到之后将数组指针下移,同时将拿到的元素下标和值以一个四个元素的数组返回:
0下标:元素的下标值
1下标:元素的值
key下标:元素的下标值
value:元素的值
如果each取不到结果,数组指针移动到最后,返回false
list函数:
是一种结构,没有返回值,不是一种函数,是list提供一堆变量去从一个数组中取得元素值,然后一次存放到对应的变量中(批量为变量赋值:值来源于数组):list必须从索引数组中去获取数据,而且必须从0开始
list与each结合使用:each一定有两个元素就是0和1的下标元素
list(变量1,变量2)=each(数组);//是一种赋值运算,但是可以得到false结果(each取不到正确的结果),整个表达式为false
数组相关的函数
1.排序函数
对数组元素进行排序,都是按照ASCII码进行比较,可以进行英文比较
sort():升序排序(下标重排)
rsort():逆序排序
asort():升序排序(下标保留)
arsort():逆序排序(下标保留)
ksort():升序排序,按照键名(下标)
krsort():逆序排序
shuffle():随机打乱数组元素,数组下标会重排
2.指针函数
reset():重置指针,将数组指针回到首位
end():重置指针,将数组指针指到最后一个元素
next():指针下移,取得下一个元素的值
prev():指针上移,取得上一个元素的值
current():获取当前指针对应的元素值
key():获取当前指针对应的下标值
注意事项:next和prev会移动指针,有可能导致指针移动到最前或者最后(离开数组),导致数组不能使用(不能通过next和prev回到正确的指针位置),只能通过end或者reset进行重置
3.其它函数
count():统计数组中元素的数量
array_push():往数组中加入一个元素(数组后面)
array_pop():从数组中取出一个元素(数组后面)
array_shift():从数组中取出一个元素(数组前面)
array_unshift():从数组中加入一个元素(数组前面)
array_revers():数组元素反过来
in_array():判断一个元素在数组中是否存在
array_keys():获取一个数组的所有下标,返回一个索引数组
array_values():获取一个数组的所有制,返回一个索引数组