zoukankan      html  css  js  c++  java
  • PHP基础-数组

    一、数组的概述
    * 1. 数组的本质:管理和操作一组变量,成批处理
    * 2. 数组是复合类型
    * 3. 数组中可以存储任意长度的数据,也可以存储任意类型的数据
    * 4. 数组就可以完成其它语言数据结构的功能(链表, 队列, 栈, 集合类)
    *
    * 二、数组的分类
    * 数组中存有多个单元,(单元称为元素)
    * 每个元素(下标[键]和值)
    * 单访问元素时候,都是通过下标(键)来访问元素
    *
    * 1. 一维数组, 二维数组, 三维数组 。。。 多维数组
    * (数组的数组, 就是在数组中存有其它的数组)
    * 2. PHP中有两种数组
    * 索引数组:就是下标是顺序整数作为索引
    * 关联数组:就是下标是字符串作为索引
    *
    * 下标(整数, 字符串)只有这两种
    *
    * 三、数组多种声明方式
    * 1. 直接为数组元素赋值
      a.如果索引下标不给出,就会从0开始顺序索引
      b.如果给出索引下标,下一个就会是从最大的开始增1
      c.如果后面出现前面的下标,如果是赋值就是为前面的元素重新赋值
      d. 混合声明时,索引和关联不互相影响(不影响索引下标的声明)
    * 2. 使用array()函数
      a. 默认是索引数组
      b.如果为关联数组和索引数组指定下标,使用 键=>值
      c.多个成员之前使用“,”分割
     3. 使用其它的函数声明
    * file();

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

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

     1 <?php
     2   $info=array(
     3         "user"=>array(
     4                 //$user[0]
     5                 array(1, "zansan", 10, "nan"),
     6                 //$user[1][1]
     7                 array(2, "lisi", 20, "nv"),    //$user[1]
     8                 //$user[2]
     9                 array(3, "wangwu", 30, "nan")
    10         ),
    11         "score"=>array(
    12                 array(1, 100, 90, 80),
    13                 array(2, 99, 88, 11),
    14                 array(3, 10, 50, 88)
    15             ),
    16         "connect"=>array(
    17                 array(1, '110', 'aaa@bbb.com'),
    18                 array(2, '120', 'bbb@ccc.com'),
    19                 array(3, '119', 'ccc@ddd.com')    
    20             )
    21     );
    22 
    23     
    24     foreach($info as $tablename=>$table){
    25         echo '<table align="center" width="500" border="1">';
    26         echo '<caption><h1>'.$tablename.'</h1></caption>';
    27         foreach($table as $row){
    28             echo '<tr>';
    29             foreach($row as $col){
    30                 echo '<td>'.$col.'</td>';
    31             }
    32             echo '</tr>';
    33         }
    34         echo '</table>';
    35     }

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

    $user=array("id"=>1, "name"=>"zhangsan", "age"=>10, "sex"=>"nan");

    while($arr=each($user)){
    //echo $arr[0]."==>".$arr[1]."<br>";
    echo $arr["key"]."---->".$arr["value"]."<br>";
    }


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

    list($name, $age, $sex)=array("zansan", 10, "nnnnn");
    
    echo $name."<br>";
    echo $age."<br>";
    echo $sex."<br>";
    
    
    
    list($name, , $sex)=array("zansan", 10, "nnnnn");
    
    echo $name."<br>";
    
    echo $sex."<br>";
    
    
    
    $ip="192.168.1.128";
    
    list(, , , $d)=explode(".", $ip);
    
    echo $d;
    
    
    
    $user=array("id"=>1, "name"=>"zhangsan", "age"=>10, "sex"=>"nan");
    
    while($arr=each($user)){
    //echo $arr[0]."==>".$arr[1]."<br>";
    echo $arr["key"]."---->".$arr["value"]."<br>";
    }
    
    
    
    $user=array("id"=>1, "name"=>"zhangsan", "age"=>10, "sex"=>"nan");
    
    while(list($key, $value)=each($user)){
    echo $key."==>".$value."<br>";
    }

    使用数组的内部指针控制函数
      next(数组);
      prev(数组);
      reset(数组)
      end(数组);

      current(数组);

      key(数组);

    $user=array("id"=>1, "name"=>"zhangsan", "age"=>10, "sex"=>"nan");
    
        while(list($key, $value)=each($user)){
            echo $key."==>".$value."<br>";
        }
        reset($user);
        while(list($key, $value)=each($user)){
            echo $key."==>".$value."<br>";
        }
        reset($user);
        next($user);
        next($user);
        while(list($key, $value)=each($user)){
            echo $key."==>".$value."<br>";
        }
        reset($user);
    
        echo current($user)."===========>".key($user)."<br>";
        end($user);
        echo current($user)."===========>".key($user)."<br>";
        prev($user);
        echo current($user)."===========>".key($user)."<br>";
  • 相关阅读:
    三、Java基础工具(1)_常用类——用户和程序交互
    二、Java面向对象(18)_枚举
    二、Java面向对象(17)_内部类
    二、Java面向对象(16)_接口
    二、Java面向对象(15)_模板方法设计模式
    【UWP】解析GB2312、GBK编码网页乱码问题
    【WP8.1】类似“IT之家” 自定义消息 的实现
    【WP8.1】HttpClient网络请求、进度以及终止
    【Win10】SplitView控件
    【WIN10】绑定x:Bind
  • 原文地址:https://www.cnblogs.com/gpdm/p/6628696.html
Copyright © 2011-2022 走看看