zoukankan      html  css  js  c++  java
  • PHP数组简介

    一.PHP数组的分类

    按照下标的不同,PHP中的数组分为关联数组和索引数组:
    索引数组:下标从0开始,依次增长。

    $arr=[1,2,3,4,5];

    关联数组:下标为字符串格式,每个下标字符串与数组的值一一关联对应。(有点像对象的键值对)

    $arr=["a"=>1;"b"=>2;"c"=>3];
    

    注:[]声明在5.4版本之后才能使用。

    二.关于关联数组和索引数组

    1、数组中,可以同时存在索引数组和关联数组

      array(1,2,3,"four"=>4);

    2、数组中,所有的索引数组,如果不加指定,会去掉关联项,默认增长(即关联数组不占索引位)

    array(1,2,3,"four"=>4,5,6);

    1,2,3,5,6的索引分别为0 1 2 3 4。
    3、如果关联数组的key,是纯十进制整数字符串,则会将此数字转为索引数组的索引值

     array(1,2,3,"9"=>4);

    1 2 3 4 的索引分别为 0 1 2 9。
     4、如果手动指定关联数组的key,索引数组的下标,如果与前面已有的key或下标重复,则后指定的值会覆盖之前的值

     array(1,2,"one"=>5,"one"=>6)

     打印数组为  1 2 "one"=>6。
     5、如果手动指定索引数组下标,则后续自增长下标,会按照之前下标最大值,依次增长

    array(1,2,3,"9"=>4,5);

    1 2 3 4 5 的索引分别为 0 1 2 9 10。

    三.数组的遍历

    1、使用for循环遍历数组
    count($arr);用于统计数组元素的个数
    for循环只能用于遍历纯索引数组
    如果存在关联数组,count统计时,会统计两种数组的总个数,使用for循环遍历混合数组,将导致数组越界!

    $arr=[1,2,3,4,5];
    for($i=0;$i<count($arr);$i++){
         echo $arr[$i];
    }    

    2、foreach循环遍历数组(最常用的方法)
     foreach可以遍历任何类型的数组,案例如下:

    $arr=[1,2,"one"=>5,"one"=>6];
    foreach($arr as $key=>$value){
            echo "这是key:{$key}";
            echo "这是value:{$value}";
    }    

    3.使用list() each() while遍历数组

    list(); 用于将数组的每一个值,赋值给list函数的每一个参数。(list函数的参数,必须小于等于数组的元素个数)

    注意:

    list()在解析数组时,只解析索引数组,不能取出关联项。

    list()可以通过空参数,选择性的解析数组的值;

    each();用于返回数组当前指针所在位的键值对,并将指针后移一位,

    返回值:一个数组。包含一个索引数组(0 键 1 值)和一个关联数组("key" 键 "value" 值)。

    while(list($key,$value) = each($arr)){
        echo "{$key}&nbsp;{$value}<br>";
    }
     reset($arr);

    注意:数组使用each遍历完一遍后,指针始终处于最后一位的下一位,即再用each,始终返回false,如果还需使用,需用reset()函数,重置数组指针。

    4、使用数组指针遍历数组

    next():将数组指针后移一位,并返回后一位的值,没有返回false。

    prev():将数组指针前移一位,并返回前一位的值,没有返回false。

    end():将数组的指针直接移至最后一位,并返回最后一位的值,空数组返回false。

    reset():重置数组指针,恢复至第一位,并返回第一位的值,空数组返回false。

    key():返回当前指针所在位的键,如果数组为空或指针指到最后,返回null。

    current():返回当前指针所在位的值,如果数组为空或指针指到最后,返回false。

    $arr=[1,2,false,3,4,5];
    while (true) {
        echo key($arr);
        echo"---";
        echo current($arr)."<br>";
        if(!next($arr)&&key($arr)===null)
            break;        
        }
    }

    注意:

    如果数组中存了false,空值会使next($arr)返回值是false,就会出现提前跳出的情况,所以用key($arr)===null判断是否到了最后一位。

    以上就是数组函数的一些基本知识。

  • 相关阅读:
    poj 2109Power of Cryptography
    poj 2632Crashing Robots
    poj 2586Y2K Accounting Bug
    linux0.12中文件系统的一些理解
    latex初学者的经验
    关于linux0.12中的add_entry中bread中的些猜测
    uid gid euid egid详解
    关于linux0.12文件系统目录大小的一个发现
    我的初级muttrc配置
    使用STM32的USB模块中后对USB缓冲区的认识
  • 原文地址:https://www.cnblogs.com/wujianrui/p/6942131.html
Copyright © 2011-2022 走看看