Chinaunix首页 | 论坛 | 博客
  • 博客访问: 398327
  • 博文数量: 104
  • 博客积分: 652
  • 博客等级: 上士
  • 技术积分: 1477
  • 用 户 组: 普通用户
  • 注册时间: 2012-07-04 15:20
文章分类

全部博文(104)

文章存档

2019年(1)

2015年(8)

2014年(6)

2013年(59)

2012年(30)

分类: PHP

2013-03-12 09:39:23

一、数组的概述
     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    //只要是当前脚本有效的变量都在这里,数组键名为全局变量的名称



阅读(1173) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~