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()函数。

(0)

相关推荐

  • 深入php list()函数的详解

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

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

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

  • 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循环语句笔记(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的list()的一步操作给一组变量进行赋值的使用

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

  • 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中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 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循环遍历数组的3种方法list()、each()和while总结

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

  • PHP遍历数组的三种方法及效率对比分析

    本文实例分析了PHP遍历数组的三种方法及效率对比.分享给大家供大家参考.具体分析如下: 今天有个朋友问我一个问题php遍历数组的方法,告诉她了几个.顺便写个文章总结下,如果总结不全还请朋友们指出 第一.foreach() foreach()是一个用来遍历数组中数据的最简单有效的方法. <?php $urls= array('aaa','bbb','ccc','ddd'); foreach ($urls as $url){ echo "This Site url is $url! <b

  • PHP遍历数组的几种方法

    PHP中遍历数组有三种常用的方法: 一.使用for语句循环遍历数组: 二.使用foreach语句遍历数组: 三.联合使用list().each()和while循环遍历数组. 这三种方法中效率最高的是使用foreach语句遍历数组.从PHP4开始就引入了foreach结构,是PHP中专门为遍历数组而设计的语句,推荐大家使用.先分别介绍这几种方法. 一.使用for语句循环遍历数组 值得大家注意的是使用for语句循环遍历数组要求遍历的数组必须是索引数组.PHP中不仅有关联数组而且还有索引数组,所以PH

  • JavaScript遍历数组的三种方法map、forEach与filter实例详解

    本文实例讲述了JavaScript遍历数组的三种方法map.forEach与filter.分享给大家供大家参考,具体如下: 前言 近一段时间,因为项目原因,会经常在前端对数组进行遍历.处理,JS自带的遍历方法有很多种,往往不加留意,就可能导致知识混乱的现象,并且其中还存在一些坑.前端时间在ediary中总结了js原生自带的常用的对数组遍历处理的方法,分别为:map.forEach.filter,在讲解知识点的同时,会类比相识的函数进行对比,这样会有助于思考方法的利与弊. 一.Js自带的map()

  • 浅谈shell 遍历数组的几种方法

    背景 某天遇到一个问题,现象如下:第一种遍历正常打印元素,然而第二种遍历只会打印一个元素! #!/bin/bash # $1 代表文件目录 # 执行 eg: # sh your_shell.sh /user/lib/ echo "开始时间:`date '+%Y-%m-%d %H:%M:%S'`" # 1.获取所有的 file files=`ls $1` # 2.定义 1个数组变量 declare -a array_files01 # 数组 index 初始化为 0 m1=0 # 遍历

  • JS中循环遍历数组的四种方式总结

    本文比较并总结遍历数组的四种方式: for 循环: for (let index=0; index < someArray.length; index++) { const elem = someArray[index]; // ··· } for-in 循环: for (const key in someArray) { console.log(key); } 数组方法 .forEach(): someArray.forEach((elem, index) => { console.log(

  • php遍历数组的4种方法总结

    在php中可以用来遍历数组的函数有很多,如有:for语句.list.each.foreach这四个函数,这也是在php中遍历数组的几个主要的函数,下面我来给大家介绍. foreach遍历数组 我们在运用数组时,常常要遍历数组并获得各个键或者元素值,php提供了一些专门遍历数组的函数.这里先介绍foreach遍历数组函数的用法. 结构形式: 复制代码 代码如下: foreach ( array_expression as $value ) statement /* array_expression

  • js数组循环遍历数组内所有元素的方法

    例,for(){}遍历数组 复制代码 代码如下: <script type="text/javascript"> <!--var arr = new Array(13.5,3,4,5,6);for(var i=0;i<arr.length;i++){ arr[i] = arr[i]/2.0;}alert(arr); //--> </script> 例,for in循环遍历数组 复制代码 代码如下: <html><body>

  • JavaScript中数组的22种方法必学(推荐)

    前面的话 数组总共有22种方法,本文将其分为对象继承方法.数组转换方法.栈和队列方法.数组排序方法.数组拼接方法.创建子数组方法.数组删改方法.数组位置方法.数组归并方法和数组迭代方法共10类来进行详细介绍 对象继承方法 数组是一种特殊的对象,继承了对象Object的toString().toLocaleString()和valueOf()方法 [toString()] toString()方法返回由数组中每个值的字符串形式拼接而成的一个以逗号分隔的字符串 [注意]该方法的返回值与不使用任何参数

  • C#使用foreach循环遍历数组完整实例

    本文实例讲述了C#使用foreach循环遍历数组的方法.分享给大家供大家参考,具体如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { //声明数组. 第一种方法. 声明并分配元素大小. int[] Myint

随机推荐