20)PHP,数组的遍历
然后开始使用这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,数组的遍历的更多相关文章
- PHP之旅3 php数组以及遍历数组 以及each() list() foreach()
php的数组的定义 <?php //php中定义数组时可以通过索引直接进行赋值: $mArr[0]="哈哈"; $mArr[1]=70; $mArr[2]='haha'; e ...
- 第27天:js-表单获取焦点和数组声明遍历
一.表单 1.this指事件的调用者2.input.value 表单更换内容3.innerHTML更换盒子里的内容,文字.标签都能换.4.isNaN("12")如果里面的不是个数字 ...
- for+next()实现数组的遍历及while list each 的使用
//要求使用for循环语句来完成该数组的遍历//输出每一项的键名和对应值: $a = array( 'a' => 34, 5 => 51, ...
- jQuery数组的遍历 function的加载
加载函数时会被覆盖在jQuery中给提供的方案有三种形式 js中只能绑定一个方法 如果多次绑定后者会覆盖前者 最常用的一种 在jQuery中数组的遍历 使用map遍历数组 会返回一个新的数组 如果 ...
- 手写js代码(一)javascript数组循环遍历之forEach
注:原文地址http://blog.csdn.net/oscar999/article/details/8671546 我这里是仿照学习! 1.js的数组循环遍历 ①数组的遍历首先想到的是for()循 ...
- 初识Javascript.03 -- switch、自增、while循环、for、break、continue、数组、遍历数组、合并数组concat
除了注意大小写,别的木啥了 Switch语句 Switch(变量){ case 1: 如果变量和1的值相同,执行该处代码 break; case 2: 如果变量和2的值相同,执行该处代码 break; ...
- PHP二维关联数组的遍历方式
采用foreach循环对二维索引数组进行遍历,相对来讲速度更快,效率更高,foreach循环是PHP中专门用来循环数组的.实例也相对简单,多加练习,想清楚程序运行逻辑即可. <?php $arr ...
- javascript:Json 和数组的遍历
首先看代码示例var json={a:1,b:2,c:3}; //json var array={1,2,3}; //数组 alert(json.a); //弹出1 或alert(json['a']) ...
- java 数组声明定义 数组内存分配 数组初始化 数组引用 数组的遍历
一,数组的定义 Java 中定义数组的语法有两种: 1. type arrayName[]; 2. type[] arrayName;type 为Java中的任意数据类型,包括基本类型和组合类型,ar ...
- javascript(基础)_对数组的遍历方法总结(find, findIndex, forEach,)
一.前言 ...
随机推荐
- 【Linux】linux磁盘管理
在服务器管理中,我们会关心硬盘用了多少,还有多少剩余空间,哪些文件占用空间最大等等.以便我们在合适的时机为服务器添加硬盘分区以及管理磁盘文件等操作,让磁盘的利用率最大化,现在我们看下linux系统中和 ...
- Python自学之路---Day01
目录 Python自学之路---Day01 注释 单行注释 多行注释 print()函数 语法 参数 实例 input()函数 语法 参数 实例 查看Python的关键字 代码 变量与常量 变量 如何 ...
- .net APP接口
编写APP接口首先要搭建测试环境,在实际开发中APP对于大多数公司来说都是选择外包,并不是公司内部人员负责,遇到事情不可能时时进行沟通和交流,也不能写每一个接口都要双方及时确认.个人经历是双方确认AP ...
- MySQL优化查询相关
[查询优化相关] 1.如何定位相关慢的查询: a.可以开启慢查询日志,也可以使用show profiles 去记录相关查询到一个临时表再分析. b.show processlist 看看有没有大量等 ...
- Access修改窗体的名称,用于VBA代码的调用
- c语言中%s和%d的区别
/************************************************************************* > File Name: ptr_both. ...
- UML-活动图及其建模
1.目标:UML活动图标示法. 2.定义:一个UML活动图标示一个过程中的多个顺序活动和并行活动.这些活动有助于对业务过程.工作流.数据流和复杂算法进行建模. 3.作用:既能表示控制流又能标示数据流. ...
- 64位win7+PCL1.6.0+VS2010,64位win10+PCL1.6.0+VS2010
https://blog.csdn.net/liukunrs/article/details/80216329 大体转载自:https://blog.csdn.net/sinat_24206709/a ...
- Jmeter接口测试之案例实战
Jmeter是apacheg公司基于Java开发的一款开源的压力测试工具,安装Jmeter之前先安装Jdk,具体JDK安装和环境变量配置自行百度.这里不概述. 1.添加线程组 测试计划->添加- ...
- mybatis框架快速入门
通过快速入门示例,我们发现使用mybatis 是非常容易的一件事情,因为只需要编写 Dao 接口并且按照 mybatis要求编写两个配置文件,就可以实现功能.远比我们之前的jdbc方便多了.(我们使用 ...