数组 数组

一、数组的概念

a) 概念: 数组的本质是存储、管理和操作一组变量,属于复合类型的一种

b) 关于键值对的概念:$arr = array('id'=>1,'name'=>'wuli','sex'=>'人妖','age'=>34);

        每个数组可以有多个值,多个值之间用逗号隔开,每个逗号内的数据称为一个单元,每个单元都是由键(下标)=>值 也就是键值对的组成,如果不写下标()默认会使用整数作为下标,每个单元的值必须有下标,通过下标来定位每个值在数组中的位置 每个单元有些只有一个种类型的下标,索引(整数)或者关联(字符串)

二、数组的定义(声明)方法

  1. 直接赋值法

a) 直接赋值法如果声明时不指定下标 默认从0分配索引下标

b) 如果给出索引下标  下一个下标就会从最大的开始每次增加一,如果后面出现前面的下标就会覆盖前面的赋值

c) 混合数中索引序列不会被关联下标影响

  1. 使用array方法

a) 不给出下标默认索引下标

  1. 使用[]定义

注意:php5.3.60以后版本支持此方法

三、数组的分类

  1. 按下标()不同分

a) 索引数组

  1. 使用整数作为下标()

b) 关联数组

  1. 使用字符串作为下标()

c) 混合数组

  1. 即使用整数又使用字符串作为下标()

  注意:下标() 是用来定位值在数组中的位置,每个值只能使用一种类型下标. 下标也称为键

  1. 按照维度不同分

a) 一维数组

  1. 数组内再也没有数组元素

b) 二维数组

  1. 数组内还有数组

c) 多维数组

  1. 数组内还有数组  数组内还有数组  各种嵌套

 一维数组、二维数组、多维数组、声明方式都是一样的 三种.

 四、数组的遍历方式

数组的遍历概念:

  使用一种特定的规则来逐个读取数组中的键和值

  1.  for语句

for语句只能遍历索引数组,并且下标是连续的 而且要注意$i的值 不能遍历关联数组

  2.  foreach() 语句(专业遍历三十年)

  1. 只遍历值

foreach(要遍历的数组 as ){

}

  1. 遍历键和值

foreach(要遍历的数组 as =>){

}   

注意: $key$value 变量名不是固定的  可以任意命名

 foreach 是有循环的功能

注意:推荐使用的遍历二维数组的方式

foreach($arr as $key=>$value){

//var_dump($value);

echo $value['name'].'<br/>';

echo $value['age'].'<br/>';

echo $value['sex'].'<br/>';

}

  1. while_list_each  语句 数组

//list可以将一组索引数组单元逐个赋值给一组变量

//把每个值赋给list内的变量

//list 只能将索引数组的单元赋值 不能将关联数组的值赋值 而且这个索引数组必须是从0开始

//each 每次访问一个数组单元并且将指针下移到下一位将访问的数据单元的键和值组成一个混合数组

  1. 指针的方式遍历数组
    1. current()   返回当前指针指向的数组单元的值  
    2. key()      返回当前指针指向数组单元的键
    3. next()     返回下一个指针位置指向的单元的值
    4. prev()      返回上一个指针位置指向的单元的值
    5. end()      返回最后一个单元的值
    6. reset()     重置指针返回初始状态

五、预定义数组(超全局数组)

  1. 服务器变量 : $_SERVER
    1. $_SERVER['SERVER_ADDR']; 客户端ip地址
    2. $_SERVER[‘HTTP_REFERER’] 上级来源地址
    3. $_SERVER['DOCUMENT_ROOT'] 根目录的绝对路径
    4. $_SERVER['SCRIPT_NAME'] 当前运行脚本名
    5. $_SERVER['QUERY_STRING'] get请求所带的参数列表字符串形式表现
    6. HTTP GET变量: $_GET   使用get方式传递值的时候接收使用
    7. HTTP POST变量:$_POST 使用post方式传递值的时候接收使用
    8. request变量:$_REQUEST    接收getpostcookie 传递值的时候接收使用
    9. HTTP 文件上传变量:$_FILES  用来打印文件上传是否成功的文件信息

需要使用enctype="multipart/form-data"来配合文件上传

只有写了上面的内容我们才可以使用$_FILES 打印我们上传的文件信息

  1. HTTP cookies: $_COOKIE
  2. session变量:$_SESSION   
  3. GLOBAL 变量: $GLOBALS