PHP中each与list用法分析


Posted in PHP onJanuary 08, 2016

本文实例分析了PHP中each与list用法。分享给大家供大家参考,具体如下:

1.each的用法

先看API

array each ( array &$array )

api里是这么描述的:each — 返回数组中当前的键/值对并将数组指针向前移动一步

我们先来看看返回的数组是怎么样的?

<?php 
$arr = array('你','若','安','好','便','是','晴','天');
print_r(each($arr));
print_r(each($arr));
echo '<hr />';
/*
返回
Array
(
  [1] => 你
  [value] => 你
  [0] => 0
  [key] => 0
)
Array
(
  [1] => 若
  [value] => 若
  [0] => 1
  [key] => 1
)
*/
//执行相同的一段代码,从‘你'到‘若',说明each是会每执行一次,游标向数组尾部移动一步
//0和Key存放的是键
//1和value存放的是值
//因此each满足遍历数组的,得到当前的键和值,以及每执行一次,向尾部移动一步游标
//因此循环数组也可以用each这么写
reset($arr);
for(;$tmp=each($arr);){
  echo $tmp[0],'~',$tmp[1],'<br />';
}
/*
返回
0~你
1~若
2~安
3~好
4~便
5~是
6~晴
7~天
*/
?>

2.list的用法

先看api是怎么说的

像 array() 一样,这不是真正的函数,而是语言结构。list()用一步操作给一组变量进行赋值

来看一个例子:

<?php 
list($a,$b)=array(10,20);
echo $a,'~',$b,'<br />';
//返回10~20
?>

没错可以给一组变量赋值

再来看另外一个例子:

<?php 
list($a,$b,,$c)=array(2=>10,3=>20,4=>30,1=>40);
echo $a,'~',$b,'~',$c,'<br />';
//返回notice~40~20
//执行到$a的时候返回给我一个notice:说数组没有0键
?>

按照一般的想法应该会返回:10~20~40

为什么会返回这个notice~40~20呢?

答:这涉及到list的运行机制,list是这么赋值的

首先:不要管右边的数组,看List里面的变量,从左到右应该是  $a = arr[0]   $b=arr[1]  $c=arr[3]

然后:从右到左开始赋值,赋值的顺序是 $c=arr[3]  $b=arr[1]  $a=arr[0]

所以$c=20  $b = 40  因为没有arr[0],所以$a给了一个警告

3.用each和list实现数组的遍历

<?php 
$arr = array('你','若','安','好','便','是','晴','天');
for(;list($k,$v)=each($arr);){
  echo $k,'~',$v,'<br />';
}
/*
return:
0~你
1~若
2~安
3~好
4~便
5~是
6~晴
7~天
*/
?>

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
多文件上传的例子
Oct 09 PHP
php学习笔记 面向对象的构造与析构方法
Jun 13 PHP
10条PHP高级技巧[修正版]
Aug 02 PHP
CI框架自动加载session出现报错的解决办法
Jun 17 PHP
php单态设计模式(单例模式)实例
Nov 18 PHP
PHP实现仿Google分页效果的分页函数
Jul 29 PHP
php将文件夹打包成zip文件的简单实现方法
Oct 04 PHP
基于win2003虚拟机中apache服务器的访问
Aug 01 PHP
ThinkPHP3.2框架自定义配置和加载用法示例
Jun 14 PHP
CI框架网页缓存简单用法分析
Dec 26 PHP
laravel框架语言包拓展实现方法分析
Nov 22 PHP
php加速缓存器opcache,apc,xcache,eAccelerator原理与配置方法实例分析
Mar 02 PHP
PHP中list()函数用法实例简析
Jan 08 #PHP
PHP图像裁剪缩略裁切类源码及使用方法
Jan 07 #PHP
PHP中substr_count()函数获取子字符串出现次数的方法
Jan 07 #PHP
PHP使用strstr()函数获取指定字符串后所有字符的方法
Jan 07 #PHP
详解WordPress开发中wp_title()函数的用法
Jan 07 #PHP
PHP中strncmp()函数比较两个字符串前2个字符是否相等的方法
Jan 07 #PHP
PHP编程基本语法快速入门手册
Jan 07 #PHP
You might like
修改PHP的memory_limit限制的方法分享
2012/02/21 PHP
php获取网页里所有图片并存入数组的方法
2015/04/06 PHP
php创建桌面快捷方式实现方法
2015/12/31 PHP
简单谈谈PHP中的trait
2017/02/25 PHP
如何实现JS函数的重载
2006/09/22 Javascript
Javascript 面向对象 继承
2010/05/13 Javascript
jQuery使用一个按钮控制图片的伸缩实现思路
2013/04/19 Javascript
jQuery对下拉框,单选框,多选框的操作
2014/02/21 Javascript
js控制href内容的连接内容的变化示例
2014/04/30 Javascript
jQuery制作效果超棒的手风琴折叠菜单
2015/04/03 Javascript
如何解决谷歌浏览器下jquery无法获取图片的尺寸
2015/09/10 Javascript
angularjs学习笔记之简单介绍
2015/09/26 Javascript
Bootstrap模态框禁用空白处点击关闭
2016/10/20 Javascript
解析Javascript单例模式概念与实例
2016/12/05 Javascript
浅谈webpack下的AOP式无侵入注入
2017/11/12 Javascript
js实现复制功能(多种方法集合)
2018/01/06 Javascript
VUE实现移动端列表筛选功能
2019/08/23 Javascript
VUE实现强制渲染,强制更新
2019/10/29 Javascript
[01:02:48]2018DOTA2亚洲邀请赛 4.1 小组赛 A组 LGD vs OG
2018/04/02 DOTA
Python使用django获取用户IP地址的方法
2015/05/11 Python
利用Anaconda完美解决Python 2与python 3的共存问题
2017/05/25 Python
Python3.X 线程中信号量的使用方法示例
2017/07/24 Python
python 通过字符串调用对象属性或方法的实例讲解
2018/04/21 Python
详解Python列表赋值复制深拷贝及5种浅拷贝
2019/05/15 Python
python爬虫 基于requests模块的get请求实现详解
2019/08/20 Python
Pandas DataFrame中的tuple元素遍历的实现
2019/10/23 Python
基于Python生成个性二维码过程详解
2020/03/05 Python
Bibloo匈牙利:女装、男装、童装及鞋子和配饰
2019/04/14 全球购物
西班牙Polo衫品牌:Polo Club
2020/08/09 全球购物
opencv实现图像几何变换
2021/03/24 Python
保护环境倡议书
2014/04/14 职场文书
幼儿园推普周活动总结
2015/05/07 职场文书
新娘婚礼致辞
2015/07/27 职场文书
Filebeat 采集 Nginx 日志的方法
2021/03/31 Servers
Pandas 稀疏数据结构的实现
2021/07/25 Python
JavaScript实现简单的音乐播放器
2022/08/14 Javascript