一数组概述,
1.)数组的本质,管理和操作一组数据,成批的处理
2.)是复合类型的数据
3.)可以存储任意长度、任意类型的数据,
二 数组的分类
1.)一维数组,二维。。。。。多维
2.)php中的数组
1.)索引数组 下标是顺序的整数作为索引 $user[0] = 1; $user[1] = 1; $user[2] = 1; $user[3] = 1;
2.)关联数组 下标是字符串作为索引(相当于hash) $user["id"] = 1; $user["age"] = 10;
三 数组的的声明
1.)直接维数组元素赋值 $user[0] = 1;$user[] = 2;
a.如果没给出下标 就从零开始顺序索引,
b.如果给出了一个下标,那后边赋值就从最大的下标开始加1
c.如果出现前边的下标,读取则正常取值,赋值操作则是为对应下标改值
d.混合声明时索引和关联互不影响;
2.)使用array()函数
a.默认是索引数组 $user = array(1,"zhangsan","nan");
b.如果要为 索引数组和关联数组 指定下标 $user = array("id" =>1,"name" => "zhangsan","nan");为指定下标的从零或者最大下标开始+1
c.多个成员之间使用“,”分割
多维数组声明 $user = array(
array("name","sex"),
array(1,2,2),
array(5,5,5,),
);
$user[0][1]的值是 “sex”
多维数组 直接复制法 $user[0][0] = 1;
未指定下标的时候会自动加1
3.)使用其他函数赋值
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 数 组 的 遍 历 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
数组的遍历
1.)使用for循环遍历
a.PHP中这不是首选的方法
b.只能循环索引数组,且索引下标是连续的
2.)foreach()循环遍历数组
a.循环的次数由数组元素的个数来决定
b.每次循环都会将元素赋给后边的变量
foreach($user as $value){ echo $value;} 这样就会将数组每个元素输出
foreach($user as $key => $value){echo $key ."=>".$value;}这样可以得到下标$key和元素$value
3.)while(), list() each()
each()函数 $user = array("name" => "zhang","sex" => "nan");
a.需要一个数组作为参数
b.返回值也是一个数组
c.返回的值是array([1] = >"zhang", [value] => "zhang",[0] => "name",[key] => "name")下标是固定的 1,value对应的是值,0,key对应的是下标
d.默认当前元素是第一个元素
e.没执行一次就将当前元素向后移
f.如果已经没有元素可取了,就返回false
list()函数 list($name,$sex,$age) = array("zhang","nan".20); 之后就可以直接使用$name...这些变量了
a.list() = array(); 需要将一个数组赋值给这个函数
b.数组中的元素个数要和list()中的参数个数相同,数组中的元素值赋给list中的参数,并将每个参数转为变量
c.list()只能接受索引数组
d.按索引的下表顺序给参数赋值
三个函数联合使用
while(list($key,$value)= each($user)){
echo "$key ==> $value";
}
当while循环结束的时候,each函数就已经将数组的下标指向了最后一个的下一个(不存在的东西)
所以如果再次循环$user会直接失败
使用数组的内部指针控制函数
next($user)
prev($user)//指向上一个
reset($user)//指向第一个
end($user)//指向最后一个
current($user)//取当前元素的值
key($user) //取当前元素的下标
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 预 定 义 数 组 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
预定义数组,。。。。。自动全局变量
1.)包含了来自web服务器(apache的环境,操作系统的环境),客户端(提交的表单),运行环境,用户输入的数据相关的一些数组
2.)全局范围内自动生效,可以直接使用
3.)用户不能自定义这些数组
$_GET //经由URL请求提交到脚本的变量
$_POST //经由http post请求提交到脚本的变量
$_REQUEST //经由 GET, POST 和COOKIE 机制提交到脚本的变量,因此该数组并不值得信任,尽量不使用
$_FILES //经由http post文件上传而提交至脚本的变量
$_COOKIE
$_SESSION
$_ENV //执行环境提交至脚本
$_SERVER //变量由web服务器设定的,或者当前脚本的执行环境相关联
$GLOBALS //只要是当前脚本有效地变量都在这里,数组下标 为全局变量的名称
保存到$_GET $_POST中的数据可以直接当做变量使用。。。但是,这种方式可以在改变php配置文件中 register_globals = off来关掉