数组的概述
数组的基本概述
数组就是组数,就是一组数据。
数组的组成
Ø 键:在数组中[]内用于区分不同值的表示就是键
Ø 值:在数组中键对应的数据就是值
Ø 键值对:键+值就是键值对
Ø 下标:键就是下标
Ø 元素:元素就是键值对
数组的分类
Ø 索引数组:当数组的下标是数字的时候,那么这个数组就称为索引数组
Ø 关联数组:当数组的下标是字符串而不是数字的时候,这个数组就是关
联数组。
Ø 混合数组:当数组的下标既有数字下标也有字符串下标的数组通常称为
混合数组。
数组的定义方式
使用语言结构来声明数组
Ø 格式1:array(值1,值2,值3);
不指定下标的数组,下标是连续增长的数值。
Ø 格式2:array(键=>值,键=>值,键=>值);
指定下标,下标为用户指定的值(字符串 数组)
使用指定的语法声明数组 (PHP版本>5.3)
Ø 格式1:数组变量=[值1,值2,值3];
不指定下标,声明索引数组。
Ø 格式2:数组变量=[键=>值,键=>值,键=>值];
指定下标,下标为用户指定的值。
通过直接添加数组元素的方式声明数组
Ø 格式1:
数组变量[] = 值
该方式声明的数组下标为从0开始连续得索引数组
Ø 格式2:
数组变量[下标] =值
使用添加元素的方式声明数组,即可用声明关联数组,也可以声明索引数组
数组的操作
查看数组所有内容
Ø 查看数组方式:
var_dump()或者使用print_r()两种方式都可以查看数组
Ø 区别:
var_dump()和print_r()都是用于查看数组内容的方法,不同的是var_dump()输出的数组的内容和类型,而print_r()仅输出内容
注意:echo不能直接输出一个数组
Ø 使用某个元素的内容
格式:数组变量[下标]
添加数组元素
Ø 方法1:数组变量[] = 值
该方式添加的元素一定是索引数组元素
添加时的下标是当前数组的最大索引下标+1
Ø 方法2:数组变量[下标] = 值
该方法既可以添加关联数组,也可以添加索引数组
修改数组元素
数组变量[下标]=新值
删除数组元素
Ø 删除和清空指定数组:
unset(数组变量[下标])
Ø 删除数组:
同时删除数组的所有元素值和类型
unset(数组变量)
Ø 清空数组:
仅删除数组的元素,不删除类型
数组变量 = array();
数组的遍历
遍历数组格式
for($i=0;$i<count(数组变量);$i++){
循环体
}
注意:for循环只能遍历连续得索引数组,不能遍历关联数组
count()统计数组中的元素个数或者说统计数组的长度
参数:要统计的数组变量
返回值:返回数组的长度
Ø 数组专用循环foreach循环布尔值循环
u 格式1:
foreach(数组变量as 键变量=>值变量){
循环体
}
遍历数组,同时获取键和值。
u 格式2:只使用值 不使用 下标
foreach(数组变量as 值变量){
循环体
}
遍历数组,只获取值。
数组的其他遍历方式
Ø 使用while 联合list遍历数组
u list()用一索引数组为一组变量赋值
参数:需要赋值的变量名称
返回值:返回指定的数组
Ø each()返回当前数组指针指向的元素,并且将数组指针向后移动一位
参数:要获取当前元素的数组变量
返回值:如果数组指针指向的有值,返回一个数组,数组中包含4 个元素,0下标对应当前元素的键,key下标对应当前元素的键,1下标对应当前元素的值,value下标对应当前元素的值。
注意:如果数组指针已经指向到末尾则返回false
Ø reset()将数组的内部指针指向第一个单元
参数:需要重置指针的数组变量
返回值:返回数组第一个单元的值,如果数组为空则返回false
Ø end()将数组的内部指针指向最后一个单位
参数:需要的数组变量
返回值:返回数组中最后一个单元的值
Ø next()将数组中的内部指针向后(前)移动一位
参数:需要移动指针的数组变量
返回值:返回移动后指针指向的值,如果没有则返回false
Ø prev()将数组的内部指针倒回一位
参数:需要移动指针的数组变量
返回值:返回移动后指针指向的值,如果没有则返回false
Ø key()获取数组中当前元素的键
参数:数组变量
返回值:返回指针指向的键
Ø current()获取数组中当前元素的值
参数:数组变量
返回值:返回指针指向的值
与数组相关的概念
一维数组
如果数组中的所有元素的值都是除了数组之外的类型,那么这个数组就是一维数组
二维数组
一个一维数组的元素具有另外一个一维数组的时候,该数组就是一个二维数组
Ø 查找二维数组中某个元素值:
数组变量[下标][下标]
多维数组
在二维数组的基础上,如果其中元素的值还是数组类型,那么这个数组就是一个多维数组。
Ø 查找多维数组中的某个元素值:
数组变量[下标][下标][下标]....
系统预定义变量
系统预定义变量是系统提供的一些数据变量,这些变量都是数据类型
Ø $_GET[] 接受页面以GET方式提交的数据(url,表单)
注意:如果表单中数据是使用get方式提交的,那么表单中action属性后面不能在加入参数,因为表单中的数据会覆盖action属性后面的数据
Ø $_POST[] 接受页面以post方式提交的表单数据
Ø $_SERVER[] 返回服务器和执行环境信息
$_SERVER['QUERY_STRING']返回访问当前页面的参数
$_SERVER['HTTP_REFERER']如果上一个页面地址存在,则返回上一个页面地址
Ø $_COOKIE[]
Ø $_SESSION[]
Ø $_FILES[]
Ø $GLOBALS[] 引用全局作用域中可用的全部变量一个包含了全部变量的全局组合数组,变量的名字就是数组的键。