• PHP数组遍历详解


    一、PHP数组简介

    1、PHP数组的分类

    按照下标的不同分为关联数组和索引数组
    ①索引数组:下标从0开始依次增长
    ②关联数组:下标为字符串格式,每个下标字符串与数组的值一一对应,(有点像对象的键值对)

    下面详细介绍下索引数组与关联数组

    ①、数组中可以同时存在索引数组和关联数组;
    ②、数组中所有的索引数组如果不加指定会去掉关联项,默认增长;关联数组不占索引位
         array(1,2,"one"=>3,4,5); //1/2/4/5的索引-->0,1,2,3
    ③、如果关联数组的key,是纯十进制整数数字符串,则会将此数字转为索引数组的索引值("10.0"、"08"等格式依然是关联数组,不是数字)
          array(1,2,"one"=>3,"9"=>4) 1,2,4的索引位0/1/9
    ④、手动指定关联数组的key,索引数组的下标,如果与前面已有的key后下标冲突,则后指定的值会覆盖前面的值
    ⑤、如果手动指定索引数组下标,则后续自增长下标会按照之前下标最大值,依次增长。

    二、PHP数组遍历的四种方法

    1、使用常规的for循环遍历

    $arr = array(1,2,3,4,5,6);
        $num = count($arr);
        echo "数组的个数为{$num}<br/>";
        for($i=0;$i<$num;$i++){
            echo "{$i}==>{$arr[$i]}<br/>";
        }

    2、使用foreach遍历数组(foreach可以遍历任何类型的数组)

    $arr = array(1,2,3,"0ne"=>7,4,5,6);
         foreach($arr as $key => $item){
              echo "{$key}==>{$item}<br>";
         }

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

    首先我介绍下list和each方法

    ①list():将数组的每一个值赋值给list函数的每一个参数。(list函数的参数必须小于等于数组的元素个数,)
      注意:list在解析数组时只解析索引数组 list可以通过空参数,选择性的解析数组的值 list($a,,$b) = $arr[1,2,3]; $a=1 $b=3

    ②each():用于返回数组当前指针所在位的键值对,并将指针后移一位,
      返回值,如果指针有下一位,返回一个数组。包含一个索引数组(0-键,1-值)和一个关联数组(key-键,value-值),
      如果指针没有下一位,返回false

    那么如何将三者运用在一块遍历数组呢?

    ①each($arr)返回数组或false
    ②把数组或false赋值给$a;
    ③while判断

    while(list($key,$value) = each($arr)){
             
            echo "{$key}==>{$value}<br>";
         }
         reset($arr);//重置数组
         while(list($key,$value) = each($arr)){
             
            echo "{$key}==>{$value}<br>";
         }

    注意:数组使用each遍历完之后,指针始终处于最会一位的下一位,即再用each,始终返回false,可以使用reset()函数重置指针

    4、使用数组指针遍历

    先介绍需要用到的各种方法:

    ①next:将数组指针后移一位,并返回后一位的值,没有返回false
    ②prev:将数组指针前移一位,并返回前一位的值,没有返回false
    ③end: 将数组指针移至最后一位,并返回最后一位的值,空数组返回false
    ④reset:将数组指针恢复到第一位,并返回第一位的值,空数组返回false
    ⑤key:返回当前指针所在位的键
    ⑥current:返回当前指针所在位的值

    下面介绍两种方法while和do while方法:

    while方法

    $arr = array(1,2,3,4,5,6);          
         while(true){
             echo key($arr);
            echo "--";
            echo current($arr);
            echo "<br>";
            if(!next($arr)){
                break;
            }
         }

    do while方法

    
    
    $arr = array(1,2,3,4,5,6); 
    do{
             echo key($arr);
            echo "--";
            echo current($arr);
            echo "<br>";
         }while(next($arr));
  • 相关阅读:
    FlashDevelop视频教程三:多工程的使用及编译SWC
    FlashDevelop插件ASCompletion
    c#实现MD5加密
    FlashDevelop视频教程一:简介及安装
    FlashDevelop4 快捷键
    FlashDevelop视频教程四:FLA工程调试和一些技巧
    一个简单的c#操作XML文件的类,只能操作一层的节点
    验证用户的存储过程
    MOSS模态窗口应用
    二进制图片格式转换
  • 原文地址:https://www.cnblogs.com/adaia/p/6921491.html
Copyright © 2020-2023  润新知