然后开始使用这2个函数和while循环结构来实现数组遍历:
形式:
reset($arr1);
while ( list ($key, $value ) = each( $arr1) ) //从数组$arr1中一次次取出元素,
//当each到数组最后的时候,就返回false,即此时循环结束
{
//这里,就可以对$key ,和$value进行操作了。
}

(1)foreach遍历

 foreach( $arr   as   [ $key  => ] $value )    //$key可以称为键变量,$value可以称为值变量。
{
//这里就可以对$key 和 $value 进行所有可能的操作——因为他们就是一个变量
//$key 代表每次取得元素的下标,可能是数字,也可以能是字符串
//$value 代表每次取得元素的值,可能是各种类型。
//此循环结构会从数组的第一项一直遍历循环到最后一项,然后结束。
}

      那个中括号的内容可以省略

遍历的基本原理:

      每个数组,其内部都有一个“指针”,该指针决定了该数组当前取值的时候,取到的元素。

      foreach遍历过程中,都是依赖与该指针而进行的!

      举例:$arr1 = array(2=>1,  ‘dd’=>5,  1=>1.1,  “abc”,  0=>true)

指针除了负责foreach循环的位置设定之外,还有其他一些函数也依赖于该指针:

 , $v1 = current( $arr1);    //取得$arr1中当前指针所指向的元素的值,如果没有指向元素,则为false

 , $v1 = key($arr1);     //取得$arr1中当前指针所指向的元素的下标,。。。。。false

 , $v1 = next($arr1 );     //将指针移向“下一个元素”,然后取得该下一个元素的值;

 , $v1 = prev($arr1);      //将指针移向“上一个元素”,然后取得该上一个元素的值

 , $v1 = reset($arr1);     //将指针移向“第一个元素”,然后取得该元素的值——数组指针初始化

6, $v1 = end($arr1);       //将指针移向“最后一个元素”,然后取得该元素的值


7, $v1 = each($arr1);      //取得当前元素的下标和值,然后移动指针到下一个位置。

 

(2)for+   next   +reset遍历:

 reset( $arr1 );    //重置数组,即:数组指针初始化,这里,返回的数据被“丢弃”了。
$len = count( $arr1);
for($i = ; $i < $len $i++){
$key = key ($arr1 ); //下标
$value = current( $arr1 ); //值
//然后这里就可以对$key 和 $value进行任何作为变量的操作
next($arr1);//这里,移动指针到下一个元素(也同时丢弃了返回值)
} **************************************************************************************************************************************
************************************************************************************************************************************
$v=array(12,13,14,'abc','fhskjf',43);
reset($v);
$length=count($v);
for($i=0;$i<$length;$i++){
echo key($v);
echo "\n";
next($v);
}

(3)while   +each()   +list()  遍历

 each()函数解释:
each()函数可以取得一个数组中的一个元素的下标和值,然后再放入一个新的数组中,并且指针后移一位。
该新的数组,有4个元素,但存储的是下标和值的“双份”,类似下述形式:
array(
=> 取出来的值,
‘value’ = >取出来的值,
= > 取出来的下标(键名),
‘key’ => 取出来的下标(键名)
);

 list()函数解释:
使用形式:
list($v1, $v2, $v3,$v4 .... )= 数组$arr1;
其作用是:依次取得数组$arr1中下标为0,,,, ....的元素的值,并一次性放入多个变量中(一一对应)
即其相当于如下语句:
$v1 = $arr1[];
$v2 = $arr1[];
$v3 = $arr1[];
$v4 = $arr1[];
..........
但是注意:只能实现这样的“从0开始的连续数字下标的元素的取值”(但并非要求数组的元素的顺序为同样的数字顺序)

 然后开始使用这2个函数和while循环结构来实现数组遍历:
形式:
reset($arr1);
while ( list ($key, $value ) = each( $arr1) ) //从数组$arr1中一次次取出元素,
//当each到数组最后的时候,就返回false,即此时循环结束
{
//这里,就可以对$key ,和$value进行操作了。
}

20)PHP,数组的遍历的更多相关文章

  1. PHP之旅3 php数组以及遍历数组 以及each() list() foreach()

    php的数组的定义 <?php //php中定义数组时可以通过索引直接进行赋值: $mArr[0]="哈哈"; $mArr[1]=70; $mArr[2]='haha'; e ...

  2. 第27天:js-表单获取焦点和数组声明遍历

    一.表单 1.this指事件的调用者2.input.value 表单更换内容3.innerHTML更换盒子里的内容,文字.标签都能换.4.isNaN("12")如果里面的不是个数字 ...

  3. for+next()实现数组的遍历及while list each 的使用

    //要求使用for循环语句来完成该数组的遍历//输出每一项的键名和对应值:    $a = array(           'a' => 34,           5 => 51,  ...

  4. jQuery数组的遍历 function的加载

    加载函数时会被覆盖在jQuery中给提供的方案有三种形式 js中只能绑定一个方法 如果多次绑定后者会覆盖前者 最常用的一种 在jQuery中数组的遍历 使用map遍历数组  会返回一个新的数组  如果 ...

  5. 手写js代码(一)javascript数组循环遍历之forEach

    注:原文地址http://blog.csdn.net/oscar999/article/details/8671546 我这里是仿照学习! 1.js的数组循环遍历 ①数组的遍历首先想到的是for()循 ...

  6. 初识Javascript.03 -- switch、自增、while循环、for、break、continue、数组、遍历数组、合并数组concat

    除了注意大小写,别的木啥了 Switch语句 Switch(变量){ case 1: 如果变量和1的值相同,执行该处代码 break; case 2: 如果变量和2的值相同,执行该处代码 break; ...

  7. PHP二维关联数组的遍历方式

    采用foreach循环对二维索引数组进行遍历,相对来讲速度更快,效率更高,foreach循环是PHP中专门用来循环数组的.实例也相对简单,多加练习,想清楚程序运行逻辑即可. <?php $arr ...

  8. javascript:Json 和数组的遍历

    首先看代码示例var json={a:1,b:2,c:3}; //json var array={1,2,3}; //数组 alert(json.a); //弹出1 或alert(json['a']) ...

  9. java 数组声明定义 数组内存分配 数组初始化 数组引用 数组的遍历

    一,数组的定义 Java 中定义数组的语法有两种: 1. type arrayName[]; 2. type[] arrayName;type 为Java中的任意数据类型,包括基本类型和组合类型,ar ...

  10. javascript(基础)_对数组的遍历方法总结(find, findIndex, forEach,)

    一.前言                                                                                                ...

随机推荐

  1. 删除所有的docker容器和镜像(转载)

    列出所有的容器 ID docker ps -aq 停止所有的容器 docker stop $(docker ps -aq) 删除所有的容器 docker rm $(docker ps -aq) 删除所 ...

  2. Codeforces 1290A/1291C - Mind Control

    题目大意: 总共有n个人和n个数字 n个人拍成一队,n个数字也是有顺序的 你排在第m个位置 按照顺序的每个人可以拿走这个序列中的第一个数字或者最后一个数字 你可以在所有人操作开始前说服最多k个人 让他 ...

  3. POJ 3970:Party

    Party Time Limit: 1000MS   Memory Limit: 65536KB   64bit IO Format: %I64d & %I64u Submit Status ...

  4. 19 01 12 javascript 定时器 封闭函数

    定时器 定时器在javascript中的作用1.制作动画2.异步操作3.函数缓冲与节流 定时器: setTimeout 只执行一次的定时器 clearTimeout 关闭只执行一次的定时器 setIn ...

  5. java多线程之volatile关键字

    public class ThreadVolatile extends Thread { public boolean flag=true; @Override public void run() { ...

  6. linux中nc命令

    语法 nc [-hlnruz][-g<网关...>][-G<指向器数目>][-i<延迟秒数>][-o<输出文件>][-p<通信端口>][-s ...

  7. PIP一次性导入所有环境和指定镜像源

    镜像源: 阿里云:https://mirrors.aliyun.com/pypi/simple/豆瓣:https://pypi.douban.com/simple/清华大学:https://pypi. ...

  8. C语言笔记 15_标准库&locale&math&setjmp&signal&stdarg&stddef

    <locale.h> 简介 locale.h 头文件定义了特定地域的设置,比如日期格式和货币符号.接下来我们将介绍一些宏,以及一个重要的结构 struct lconv 和两个重要的函数. ...

  9. js filter()用法小结

    /* filter() 对数组中的每个元素都执行一次指定的函数(callback),并且创建一个新的数组, 该数组元素是所有回调函数执行时返回值为 true 的原数组元素.它只对数组中的 非空元素执行 ...

  10. 四、python杂项

    一.pycharm单行和多行注释快捷键                        多行注释就一个组合键:选中+Ctrl+/