PHP循环遍历数组的3种方法list()、each()和while总结

①each()函数

each()函数需要传递一个数组作为参数,返回数组中当前元素的键/值对,并向后移动数组指针到下一个元素的位置。键/值对被返回带有4个元素的关联和索引混合的数组,键名分别为0、1、key和value。其中键名0和key对应的值是一样的,是数组元素的键名,1和value则包含有数组元素的值。如果内部指针越过了数组的末端,则each()返回FALSE。each()函数的使用如下所示:

复制代码 代码如下:

<?php
$contact = array("ID" => 1,"姓名" => "高某","公司" => "A公司","地址" => "北京市",);
$id = each($contact); //返回数组$contact中第一个元素的键/值对,是带有4个元素的数组
print_r($id); //输出数组$id:Array([1]=>1,[value]=>1,[0]=>ID,[key]=>ID)
 
$name = each($contact); //返回数组$contact中的第二个元素的键/值对,是带有4个元素的数组
print_r($name); //输出Array([1]=>高某,[value]=>高某,[0]=>姓名,[key]=>姓名)
 
$company = each($contact);
print_r($company); //输出Array([1]=>A公司,[value]=>A公司,[0]=>公司,[key]=>公司)
 
$address = each($contact);
print_r($address); //输出Array([1]=>北京市,[value]=>北京市,[0]=>地址,[key]=>地址)
 
$no = each($contact);
var_dump($no); //输出bool(false)
?>

②list()函数

这不是真正的函数,而是PHP的语言结构。list()用一步操作给一组变量进行赋值,即把数组中的值赋给一些变量。list()仅能用于数字索引的数组并假定数组索引从0开始。语法格式如下所示:

复制代码 代码如下:

list(mixed varname,mixed…) = array_expression

list()语句和其他函数在使用上有很大的区别,并不是直接接收一个数组作为参数。而是通过“=”运算符以赋值的方式,将数组中的每一个元素的值,对应的赋给list()函数中的每一个参数。list()函数又将它中的每个参数转换为直接可以在脚本中使用的变量。使用方式如下:

复制代码 代码如下:

<?php
$info = array('coffee','brown','caffeine');
list($drink,$color,$power) = $info;
 
list($drink,,$power) = $info; //变量的值是数组中第一个和第三个值
 
list( , ,$power) = $info; //变量值是数组中第三个元素的值
?>

通过上例了解list()函数的用法之后,将each()函数和list()函数结合起来使用。代码如下所示:

复制代码 代码如下:

<?php
$contact = array("ID" => 1,"姓名" => "高某","公司" => "A公司","地址" => "北京市",);
 
list($key,$value) = each($contact);
echo "$key => $value"; //输出变量$key和$value,中间使用“=>”分割
?>

③while循环 遍历数组

前面介绍的each()和list()语句的使用,就不难理解如果使用while循环遍历数组了。使用的语法格式如下所示:

复制代码 代码如下:

while(list($key,$value) = each(array_expression)){
循环体
}

这种联合体的格式遍历给定的array_expression数组。在while()语句每次循环中,each()语句将当前数组元素的键,赋给list()函数的第一个参数变量$key。并将当前数组元素中的值,赋给list()函数中的第二个参数变量$value,并且each()语句执行之后还会把数组内部的指针向后移动一步,因此下次while()语句循环时,将会得到该数组中下一个元素的键/值对。直到数组的结尾each()语句返回FALSE,while()语句停止循环,结束数组的遍历。

复制代码 代码如下:

<?php
$contact = array(
"ID" => 1,
"姓名" => "高某",
"公司" => "A公司",
"地址" => "北京市",
"电话" => "(010)98765432",
"EMAIL" => "gao@brophp.com",
);
 
//以HTML列表的方式输出数组中每个元素的信息
echo '<dl>一个联系人信息:';
 
while(list($key,$value) = each($contact)){
echo "<dd>$key : $value</dd>";
}
 
echo '</dl>';
?>

也可以是哟on个同样的方式嵌套遍历多维数组。虽然while遍历数组的结果和freach语句相同,但这两种方法是有区别的。在使用while语句遍历数组之后,each()语句已经将传入的数组参数内部指针指向了数组末端。当再次使用while语句遍历同一个数组时,数组指针已经在数组的末端,each()语句直接返回FALSE,while语句不会被执行循环。只有在while语句执行之前调用reset()函数,重新将数组指针指定第一个元素。而foreach语句会自动重置数组的指针位置,当foreach开始执行时,数组内部的指针会自动指向第一个单元。这意味着不需要在foreach循环前调用reset()函数。

时间: 2014-11-16

php笔记之:php函数range() round()和list()的使用说明

一>> range()函数快速创建数组的简单方法,使用low到high范围的整数值填充数组,函数将返回一个包含次范围内所有整数的数组.形式如下 array range(int low,int high[,int step]) 典型用法如下 例子:建立1-6的6个数字的数组(骰子) $die = range(0,6); 建立0-30所有双数的数组 $even  = (0,20,2);//步长为2 这个函数不仅仅可以用作数字,还可以用作字母. 如 $words = range('A','Z');

php的list()的一步操作给一组变量进行赋值的使用

例如: <?php list($a,$b) = explode(" ",microtime()); echo $a.'------'.$b; ?> 结果:0.60937700-----1305625768

PHP中list()函数用法实例简析

本文实例讲述了PHP中list()函数用法.分享给大家供大家参考,具体如下: PHP中的list() 函数用于在一次操作中给一组变量赋值. 注意:这里的数组变量只能为数字索引的数组,且假定数字索引从 0 开始. list()函数定义如下: list(var1,var2...) 参数说明: var1      必需.第一个需要赋值的变量. var2,...  可选.更多需要赋值的变量. 示例代码如下: <?php //$arr=array('name'=>'Tom','pwd'=>'123

PHP list() 将数组中的值赋给变量的简单实例

list() PHP list() 用一步操作把数组中的值赋给一些变量.同 array() 一样,list() 不是真正的函数,而是语言结构. 语法: void list( mixed var, mixed ... )注意: list() 仅能用于数字索引的数组并假定数字索引从 0 开始. 例子1: <?php $arr_age = array(18, 20, 25); list($wang, $li, $zhang) = $arr_age; echo $wang; //输出:18 echo $

PHP中each与list用法分析

本文实例分析了PHP中each与list用法.分享给大家供大家参考,具体如下: 1.each的用法 先看API array each ( array &$array ) api里是这么描述的:each - 返回数组中当前的键/值对并将数组指针向前移动一步 我们先来看看返回的数组是怎么样的? <?php $arr = array('你','若','安','好','便','是','晴','天'); print_r(each($arr)); print_r(each($arr)); echo '&

PHP循环语句笔记(foreach,list)

一般foreach用的比较多 复制代码 代码如下: <?php $price=array('apple'=>10,'orange'=>20,'banner'=>30); foreach($price as $key=>$value) { echo $key.'=>'.$value.'<br>'; } echo '<br>'; ?> 还有个更高级和常见的方法 复制代码 代码如下: <?php $shuiguo=array('apple'

PHP中list方法用法示例

本文实例讲述了PHP中list方法用法.分享给大家供大家参考,具体如下: <?php function small_numbers() { return array (0, 1, 2); } list ($zero, $one, $two) = small_numbers(); var_dump($zero); var_dump($one); var_dump($two); ?> 输出: int(0) int(1) int(2) 改变一下 <?php function small_num

PHP 数组遍历方法大全(foreach,list,each)

在PHP中数组分为两类: 数字索引数组和关联数组. 其中数字索引数组和C语言中的数组一样,下标是为0,1,2- 而关联数组下标可能是任意类型,与其它语言中的hash,map等结构相似. 下面介绍PHP中遍历关联数组的三种方法: 方法1:foreach 复制代码 代码如下: <?php $sports = array( 'football' => 'good', 'swimming' => 'very well', 'running' => 'not good'); foreach

深入php list()函数的详解

list()( PHP 4中, PHP 5中) list-指定变量,好象他们是一个数组描述void list ( mixed $varname [, mixed $... ] )像阵列( ) ,这是不是一个真正的功能,而是一种语言结构.名单( )是用来指定名单中的变数之一作业. 参数varname 一个变量. 返回值没有价值的返回. 实例例如# 1名单( )的例子 复制代码 代码如下: <?php$info = array('coffee', 'brown', 'caffeine');// Li

C++ 中const修饰虚函数实例详解

C++ 中const修饰虚函数实例详解 [1]程序1 #include <iostream> using namespace std; class Base { public: virtual void print() const = 0; }; class Test : public Base { public: void print(); }; void Test::print() { cout << "Test::print()" << end

Linux 在Shell脚本中使用函数实例详解

Linux 在Shell脚本中使用函数实例详解 Shell的函数 Shell程序也支持函数.函数能完成一特定的功能,可以重复调用这个函数. 函数格式如下: 函数名() { 函数体 } 函数调用方式: 函数名 参数列表 实例:编写一函数add求两个数的和,这两个数用位置参数传入,最后输出结果. root@ubuntu:/home/study# vi test3 #!/bin/bash add(){ a=$1; b=$2; z=`expr $a + $b`; echo "The sum is $z&

基于js的变量提升和函数提升(详解)

一.变量提升 在ES6之前,JavaScript没有块级作用域(一对花括号{}即为一个块级作用域),只有全局作用域和函数作用域.变量提升即将变量声明提升到它所在作用域的最开始的部分. 上个简历的例子如: console.log(global); // undefined var global = 'global'; console.log(global); // global function fn () { console.log(a); // undefined var a = 'aaa';

JavaScript中push(),join() 函数 实例详解

定义和用法 push方法 可向数组的末尾添加一个或多个元素,并返回一个新的长度. join方法 用于把数组中所有元素添加到一个指定的字符串,元素是通过指定的分隔符进行分割的. 语法 arrayObject.push(newelement1,newelement2,....,newelementX) arrayObject.join(separator). 参数描述newelement1必需.要添加到数组的第一个元素.newelement2可选.要添加到数组的第二个元素.newelementX可选

JavaScript中eval()函数用法详解

eval() 函数计算 JavaScript 字符串,并把它作为脚本代码来执行. 如果参数是一个表达式,eval() 函数将执行表达式.如果参数是Javascript语句,eval()将执行 Javascript 语句. 语法 复制代码 代码如下: eval(string) 参数 描述 string 必需.要计算的字符串,其中含有要计算的 JavaScript 表达式或要执行的语句. eval()函数用法详解: 此函数可能使用的频率并不是太高,但是在某些情况下具有很大的作用,下面就介绍一下eva

C++中函数指针详解及代码分享

函数指针 函数存放在内存的代码区域内,它们同样有地址.如果我们有一个int test(int a)的函数,那么,它的地址就是函数的名字,如同数组的名字就是数组的起始地址. 1.函数指针的定义方式:data_types (*func_pointer)( data_types arg1, data_types arg2, ...,data_types argn); c语言函数指针的定义形式:返回类型 (*函数指针名称)(参数类型,参数类型,参数类型,-); c++函数指针的定义形式:返回类型 (类名

C语言中调用Swift函数实例详解

C语言中调用Swift函数实例详解 在Apple官方的<Using Swift with Cocoa and Objectgive-C>一书中详细地介绍了如何在Objective-C中使用Swift的类以及如何在Swift中使用Objective-C中的类.在后半部分也介绍了如何在Swift中使用C函数,不过对于如何在C语言中使用Swift函数却只字未提.这里我就为大家分享一下如何在C语言中调用Swift函数. 我们首先要知道的是,所有Swift函数都属于闭包.其次,Swift函数的调用约定与

C 语言中strstr函数实例详解

C 语言中strstr函数实例详解 strstr函数 strstr(str1,str2) 函数用于判断字符串str2是否是str1的子串.如果是,则该函数返回str2在str1中首次出现的地址:否则,返回NULL const char* strstr(const char* str1,const char* str2); char* strstr(char* str1,const char* str2); 库中实现的strstr #include <stdio.h> #include <

C++ 虚函数的详解及简单实例

C++ 虚函数的详解 虚函数的使用和纯虚函数的使用. 虚函数是在基类定义,然后子类重写这个函数后,基类的指针指向子类的对象,可以调用这个函数,这个函数同时保留这子类重写的功能. 纯虚函数是可以不用在基类定义,只需要声明就可以了,然后因为是纯虚函数,是不能产生基类的对象,但是可以产生基类的指针. 纯虚函数和虚函数最主要的区别在于,纯虚函数所在的基类是不能产生对象的,而虚函数的基类是可以产生对象的. // pointers to base class #include <iostream> usi

JavaScript 函数节流详解及方法总结

JavaScript 函数节流详解 浏览器一个网页的UI线程只有一个,他同时会处理界面的渲染和页面JavaScript代码的执行(简单扩展一下,浏览器或者JavaScript运行大环境并不是单线程,诸如ajax异步回调.hybrid框架内与native通信.事件队列.CSS运行线程等等都属于多线程环境,不过ES6引入了Promise类来减少了部分异步情况).因此当JavaScript代码运行计算量很大的方法时,就有可能阻塞UI线程,小则导致用户响应卡顿,严重的情况下浏览器会提示页面无响应是否强制