一、数组的概述
1. 数组的本质:管理和操作一组变量,成批处理
2. 数组是复合类型
3. 数组中可以存储任意长度的数据,也可以存储任意类型的数据
4. 数组就可以完成其它语言数据结构的功能(链表, 队列, 栈, 集合类)
二、数组的分类
1. 数组中存有多个单元,(单元称为元素)
每个元素(下标[键]和值)
单访问元素时候,都是通过下标(键)来访问元素
一维数组, 二维数组, 三维数组 。。。 多维数组
(数组的数组, 就是在数组中存有其它的数组)
2. PHP中有两种数组
索引数组:就是下标是顺序整数作为索引
关联数组:就是下标是字符串作为索引
$user["id"]=1;
$user["name"]="zhangsan";
$user["age"]=10;
$user["sex"]="nan";
$user["email"]="aaa@bb.com";
下标(整数, 字符串)只有这两种
三、数组多种声明方式
1. 直接为数组元素赋值
a.如果索引下标不给出,就会从0开始顺序索引
b.如果给出索引下标,下一个就会是从最大的开始增1
c.如果后面出现前面的下标,如果是赋值就是为前面的元素重新赋值
d. 混合声明时,索引和关联不互相影响(不影响索引下标的声明)
2. 使用array()函数
a. 默认是索引数组
b.如果为关联数组和索引数组指定下标,使用 键=>值
$user=array("id"=>1, "name"=>"zhsangsan", "age"=>10, 100=>"nan", "aaa@bbb.com");
c.多个成员之前使用“,”分割
四、数组的遍历
1. 使用for语句循环遍历数组
a. 其它语言(只有这一种方式)
b. PHP中这种方式不是我们首选方式
c. 数组必须是索引数组,而且下标还必须是连续的
(索引数组下标还可以不连序,数组还有关联数组)
2. 使用foreach语句循环遍历数组
foreach(数组变量 as 变量值){
//循环体
}
a. 循环次数由数组的元素个数决定
b. 每一次循环都会将数组中的元素分别赋值给后面变量
foreach(数组变量 as 下标变量=> 值变量){
//循环体
}
$user=array(1, "name"=>"zhasna", "age"=>40, 100=>"nan", "aaa@bb.com");
foreach($user as $key=>$val){ //$var 是自定义变量, $key自定义变量
echo $key."=========>".$val."
";
}
3. while() list() each() 组合循环遍历数组
each()函数,
a. 需要一个数组作为参数
b. 返回来的也是一个数组
c. 返回来的数组是0, 1, key, value四个下标(固定的)
0和key下标是当前参数数组元素的鍵
1和value下标是当前对数数组元素的值
d. 默认认当前元素就是第一个元素
e. 每执行一次后就会将当前元素向后移动
f. 如果到最后的元素再执行这个函数,则返回false
list()函数
a. list()=array(); 需要将一个数组赋值给这个函数
b. 数组中的元素个数,要和list()函数中的参数个数相同
c. 数组中的每个元素值会赋值list()函数中的每个参数,list()将每个参数转为变量
d. list()只能接收索引数组
e. 按索引的下标的顺序
五、预定义数组:
自动全局变量---超全局数组
1. 包含了来自WEB服务器,客户端,运行环境和用户输入的数据
2. 这些数组比较特别
3. 全局范围内自动生效,都可以直接使用这些数组
4. 用户不能自定义这些数组, 但这些数据操作方式又和我们自定义的数组操作方式一样
5. 在函数中直接可以使用这些数组
$_GET //经由URL请求提交至脚本的变量
$_POST //经由HTTP POST 方法提交到脚本的变量
$_REQUEST //经由GET, POST和COOKIE机制提交 到脚本的变量,因此该数组并不值得信任,不去使用(尽量)
$_FILES //经由HTTP POST 文件上传而提交至脚本, 文件处理一章,文件上传
$_COOKIE //
$_SESSION //
$_ENV //执行环境提交至脚本的变量
$_SERVER //变量由WEB服务器设定的,或 直接和当前脚本的执行环境相关联
$GLOBALS //只要是当前脚本有效的变量都在这里,数组键名为全局变量的名称
阅读(1167) | 评论(0) | 转发(0) |