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));
时间: 2024-08-25 15:17:19

PHP数组遍历详解的相关文章

Java 多维数组遍历详解

数组是Java中的一种容器对象,它拥有多个单一类型的值.当数组被创建的时候数组长度就已经确定了.在创建之后,其长度是固定的.下面是一个长度为10的数组: public class ArrayDemo { private int arraySize=10; public int[] arrayOfIntegers = new int[arraySize]; } 上面的代码是一维数组的例子.换句话说,数组长度只能在一个方向上增长.很多时候我们需要数组在多个维度上增长.这种数组我们称之为多维数组.为简

JavaScript数组方法详解

JavaScript数组方法详解 JavaScript中数组的方法种类众多,在ES3-ES7不同版本时期都有新方法:并且数组的方法还有原型方法和从object继承的方法,这里我们只介绍数组在每个版本中原型上的方法,本文举例介绍了从ES3到ES7几乎所有的数组方法.这大概是最全的数组方法详解了.希望读者能从中有所收获. 一.各版本数组方法一览表 数组方法名 对应版本 功能 原数组是否改变 pop() ES3- 删除最后一位,并返回删除的数据 是 push() ES3- 在最后一位新增一或多个数据,

OpenCV学习C++接口 Mat像素遍历详解

OpenCV学习C++接口 Mat像素遍历详解 原文地址:https://www.cnblogs.com/zhehan54/p/8460602.html

指针数组与数组指针详解

转自:https://blog.csdn.net/men_wen/article/details/52694069 指针数组与数组指针详解 1.什么是指针数组和数组指针? 指针数组:指针数组可以说成是"指针的数组",首先这个变量是一个数组,其次,"指针"修饰这个数组,意思是说这个数组的所有元素都是指针类型,在32位系统中,指针占四个字节. 数组指针:数组指针可以说成是"数组的指针",首先这个变量是一个指针,其次,"数组"修饰这

jQuery$.each循环遍历详解,各种取值对比,$.each遍历数组、对象、Dom元素、二维数组、双层循坏、类json数据等等

jQuery 遍历函数包括了用于筛选.查找和串联元素的方法. 函数 描述 .add() 将元素添加到匹配元素的集合中. .andSelf() 把堆栈中之前的元素集添加到当前集合中. .children() 获得匹配元素集合中每个元素的所有子元素. .closest() 从元素本身开始,逐级向上级元素匹配,并返回最先匹配的祖先元素. .contents() 获得匹配元素集合中每个元素的子元素,包括文本和注释节点. .each() 对 jQuery 对象进行迭代,为每个匹配元素执行函数. .end(

最新java数组的详解

java中HashMap详解 http://alex09.iteye.com/blog/539545 总结: 1.就像引用类型的数组一样,当我们把 Java 对象放入数组之时,并不是真正的把 Java 对象放入数组中,只是把对象的引用放入数组中,每个数组元素都是一个引用变量. 2.HashMap 采用一种所谓的“Hash 算法”来决定每个元素的存储位置. 3.HashMap 底层采用一个 Entry[] 数组来保存所有的 key-value 对,当需要存储一个 Entry 对象时,会根据 Has

JavaScript中数组对象详解

Array对象即数组对象用于在单个变量中存储多个值,JS的数组是弱类型的,所以允许数组中含有不同类型的元素,数组元素甚至可以是对象或者其他数组. 创建数组的语法 1.Array构造器 1.var list=new Array(); 2.var list=new Array(size); 3.var list=new Array(element0,element1,...elementn); 2.字面量的方式 var Array[element0,element1,...elementn]; 举例

浅析Java 数组-基础详解

什么是数组:数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同. Java 数组:用来存储固定大小的同类型元素. 一 声明.创建,初始化Java 数组 写在前面:定义Java 数组包括声明和创建:可以先声明,再创建(两步):也可以同时声明和创建(一步). 1.声明 方法1(首选):dataType[] arrayName;  示例:String[] country; 方法2:dataType arrayName[]; : 示例:String country

【IOS 开发】Object - C 数组使用详解

. 一. 一维数组 1. 一维数组定义 (1) 数组定义 数组定义格式 : type arrayName[len]; -- 默认初始化 : 注意 数组定以后, 如果是 int 数组默认初始化为 0, 如果是浮点型 默认元素为 0.0, 如果是 指针类型数组 默认类型 null; (2) 数字地址计算 数组元素地址性质 : 数组元素是连续存放的; -- 数组首地址 : 数组变量是一个指针, 其存放了数组中元素的首地址; -- 元素地址计算公式 : 元素地址 = 数组首地址 + 数组元素所占内存大小