zoukankan      html  css  js  c++  java
  • PHP中的数组(一)

    一.数组的概述
        1.数组的本质:管理和操作一组变量
        2.数组是复合类型
        3.数组中可以存储任意长度的数据,也可以存储任意类型的数据
        4.数组就可以完成其它语言数据结构的功能(链表,队列,栈,集合类)
    二.数组的分类
        数组中存有多个单元(单元称为元素)
        每个元素都是由下标(键)和值组成
        单独访问元素时,都是通过下标(键)来访问元素

        1.一维数组,二位数组,多维数组(数组的数组)
        2.PHP中有两种数组
            索引数组:就是下标是顺序整数作为索引
            关联数组:就是下标是字符串作为索引

            下标(整数或字符串)

    三.数组多种声明方式
        1.直接为数组元素赋值
            a.如果索引下标不给出,就会从0开始顺序索引
            b.如果给出索引下标,下一个就会是从最大的增一
            c.如果后面出现前面的下标,如果是赋值就是为前面的元素重新赋值

     1 <?php
     2 //索引数组   直接声明
     3 $user[]=1;
     4 $user[0]="zhangsan";
     5 $user[9]=10;
     6 $user[2]="nan";
     7 $user[]="aa@bb.com";
     8 
     9 echo '<pre>';
    10 print_r($user);
    11 echo '<pre>';
    12 ?>
     1 <?php
     2 //关联数组   直接声明
     3 $user["id"]=1;
     4 $user["name"]="zhangsan";
     5 $user["age"]=10;
     6 $user["sex"]="nan";
     7 $user["email"]="aa@bb.com";
     8 
     9 echo '<pre>';
    10 print_r($user);
    11 echo '<pre>';
    12 ?>

        2.使用array()函数

        a.默认是索引数组
               b.如果为关联数组和索引数组指定下标,使用键=>值

        c.多个成员之间使用逗号分隔

     1 <?php
     2 //使用array声明默认为索引数组
     3 $user=array(1,"zhangsan",10,"nan","aa@bb.com");
     4 
     5 //使用关联数组
     6 $user1=array("id"=>2,"name"=>"lisi","age"=>20,"sex"=>"nan","email"=>"aa@bb.com");
     7 
     8 echo '<pre>';
     9 print_r($user);
    10 echo '<pre>';
    11 
    12 echo '<pre>';
    13 print_r($user1);
    14 echo '<pre>';
    15 ?>

    二维数组

     1 <?php
     2 $user=array(
     3                 array(1,"zhangsan","nan"),
     4                 array(2,"lisi","nv"),
     5                 array(3,"wangwu","nan")
     6     );
     7 
     8 echo $user
     9 echo '<pre>';
    10 print_r($user);
    11 echo '<pre>';
    12 
    13 echo $user[1][1];
    14 ?>

    三维数组

     1 <?php
     2 //声明一个三维数组
     3 $info=array(
     4             "user"=>array(
     5                         array(1,"zhangsan","nan"),
     6                         array(2,"lisi","nv"),
     7                         array(3,"wangwu","nan")
     8                 ),
     9             "score"=>array(
    10                         array(1,100,90,80),
    11                         array(2,80,90,70),
    12                         array(3,60,50,86)
    13                 ),
    14             "connect"=>array(
    15                         array(1,'110',"aaa@qq.com"),
    16                         array(2,'120',"bbb@qq.com"),
    17                         array(3,'119',"ccc@qq.com")
    18                 )
    19     );
    20 
    21 //输出bbb@qq.com
    22 echo $info[connect][1][2];
    23 
    24 echo '<pre>';
    25 print_r($info);
    26 echo '<pre>';
    27 ?>


        3.使用其他函数声明

    四.数组的遍历
        1.使用for循环遍历数组
            a.其它语言(只有这一种方式)
            b.PHP中这种方式不是我们的首选
            c.数组必须是索引数组,而且下标还必须是连续的
                (索引数组下标还可以不连续,数组我们有时还要使用关联数组)

    1 <?php
    2 $user=array(1,"zhangsan",19,"nan");
    3 
    4 for($i=0;$i<count($user);$i++){
    5     echo "$user[$i]=".$user[$i]."<br>";
    6 }
    7 ?>


        2.使用foreach语句循环遍历数组
            foreach(数组变量  as  变量值){
                    //循环体
            }

            foreach(数组变量  as  下标变量=>值变量){
                    //循环体
            }
            a.循环次数由数组的元素个数决定
            b.每一次循环都会将数组中的元素分别赋值给后面的变量

    foreach 遍历一维数组

     1 <?php
     2 $user=array(1,"name"=>"zhangsan","age"=>19,"nan");
     3 
     4     foreach($user as $var){   //$var是自定义变量
     5         echo $var."<br>";
     6     }
     7 
     8     foreach($user as $key=>$var){   //$var是自定义变量
     9         echo $key."---".$var."<br>";
    10     }
    11 ?>

    foreach遍历三维数组

     1 <?php
     2 //声明一个三维数组
     3 $info=array(
     4             "user"=>array(
     5                          array(1,"zhangsan","nan"),
     6                          array(2,"lisi","nv"),
     7                          array(3,"wangwu","nan")
     8                  ),
     9             "score"=>array(
    10                         array(1,100,90,80),
    11                         array(2,80,90,70),
    12                         array(3,60,50,86)
    13                 ),
    14             "connect"=>array(
    15                         array(1,'110',"aaa@qq.com"),
    16                         array(2,'120',"bbb@qq.com"),
    17                         array(3,'119',"ccc@qq.com")
    18                 )
    19     );
    20  
    21  //遍历三维数组
    22 foreach($info as $tableName=>$table){
    23     echo '<table border="1" width="500" align="center">';
    24     echo '<caption><h1>'.$tableName.'</h1></caption>';
    25     foreach($table as $row){
    26         echo '<tr>';
    27         foreach($row as $col){
    28             echo '<td align="center">'.$col.'</td>';
    29         }
    30         echo '</tr>';
    31     }
    32     echo '</table>';
    33 }
    34 ?>

        
        3.while()  list()  each()组合循环遍历数组
            each()函数
                a.需要一个数组作为一个参数
                b.返回来的也是一个数组
                c.返回来的数组是0,1,key,value四个下标
                    0和key下标是当前参数数组元素的键
                    1和value下标是当前对数数组元素的值
                d.默认当前元素就是第一个元素
                e.每执行一次后就会将当前元素向后移动
                f.如果到最后的元素再执行这个函数,则返回false

     1 <?php
     2 $user=array("id"=>1,"name"=>"zhangsan","age"=>10,"sex"=>"nan");
     3 
     4 $a=each($user);
     5 print_r($a);   //Array ( [1] => 1 [value] => 1 [0] => id [key] => id ) 
     6 
     7 echo "<br>";
     8 $b=each($user);
     9 print_r($b);    //Array ( [1] => zhangsan [value] => zhangsan [0] => name [key] => name ) 
    10 ?>

    while和each()函数结合使用

    1 <?php
    2 $user=array("id"=>1,"name"=>"zhangsan","age"=>10,"sex"=>"nan");
    3 
    4 while($arr=each($user)){
    5     //echo $arr[0]."==>".$arr[1]."<br>";
    6     echo $arr[key]."==>".$arr[value]."<br>";
    7 }
    8 ?>


            list()函数
                a.list()=array();  需要讲一个数组赋值给这个函数
                b.数组中的元素个数,要和list()函数中的参数个数相同
                c.数组中的每个元素值会赋值list()函数中的每个参数,list()将每个参数转为变量。
                d.list()只能接受索引数组
                e.按索引下标的顺序

     1 <?php
     2 list($name,$age,$sex)=array("zhangsan","20","nan");
     3 
     4 echo $name."<br>";
     5 echo $age."<br>";
     6 echo $sex."<br>";
     7 
     8 $user=array("id"=>1,"name"=>"zhangsan","age"=>10,"sex"=>"nan");
     9 
    10 list($key,$value)=each($user);
    11  echo $key."-->".$value;
    12 ?>


                使用数组的内部指针控制函数
                next(数组);     指针移动到下一个,并返回当前元素的值
                prev(数组);     指针移动到上一个,并返回当前元素的值
                rest(数组);     指针移动到头一个
                end(数组);      指针移动到最后一个
                current(数组);   获取当前元素的值
                key(数组);       获取当前元素的键

    while()、list()、each()结合使用

     1 <?php
     2 $user=array("id"=>1,"name"=>"zhangsan","age"=>10,"sex"=>"nan");
     3 
     4 while(list($key,$value)=each($user)){
     5     echo $key."==>".$value."<br>";
     6 }
     7 reset($user);
     8 next($user);
     9 echo prev($user);
    10 ?>

    五.预定义数组
        自动全局变量
        1.包含了来自web服务器,客户端,运行环境和用户输入的数据
        2.这些数组比较特别,全局范围内自动生效,都可以直接使用这些数组。
        3.用户不能自定义这些数组,但这些数据操作方式又和我们自定义的数组操作方式一样
        4.在函数中直接可以使用这些数组

        $_GET        经由URL请求提交至脚本的变量
        $_POST       经由HTTP POST方法提交到脚本的变量
        $_REQUEST    经由GET POST COOKIE机制提交到脚本的变量,因此该数组并不值得信任,尽量不要使用。
        $_FILES      经由HTTP POST文件上传而提交至脚本
        $_COOKIE     会话控制
        $_SESSION    会话控制
        $_ENV        执行环境提交脚本的变量
        $_SERVER     变量由web服务器设定的或直接和当前脚本的执行环境相关联
        $GLOBALS     只要是当前脚本有效的变量都在这里,数组的键名为全局变量的名称

     

  • 相关阅读:
    css3 box-shadow
    JS的Document属性和方法
    简单配色方案web
    ps中参考线的使用技巧
    min-width() ie6
    js 模拟右键菜单
    display:table-cell
    js opener 的使用
    js的 new image()
    CSS 中文字体 Unicode 编码方案
  • 原文地址:https://www.cnblogs.com/Y-HKL/p/5307920.html
Copyright © 2011-2022 走看看