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 相关文章推荐
基于PHP+MySQL的聊天室设计
Oct 09 PHP
PHP中,文件上传
Dec 06 PHP
php header()函数使用说明
Jul 10 PHP
非常好用的两个PHP函数 serialize()和unserialize()
Feb 04 PHP
php设计模式小结
Feb 15 PHP
php中OR与|| AND与&amp;&amp;的区别总结
Oct 26 PHP
浅析PHP编程中10个最常见的错误
Aug 08 PHP
跟我学Laravel之请求(Request)的生命周期
Oct 15 PHP
php读取csv数据保存到数组的方法
Jan 03 PHP
再推荐十款免费的php开发工具
Nov 09 PHP
在PHP 7下安装Swoole与Yar,Yaf的方法教程
Jun 02 PHP
php表单文件iframe异步上传实例讲解
Jul 26 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
一个颜色轮换的简单例子
2006/10/09 PHP
php使用exec shell命令注入的方法讲解
2013/11/12 PHP
php session劫持和防范的方法
2013/11/12 PHP
PHP遍历并打印指定目录下所有文件实例
2014/02/10 PHP
php设置session值和cookies的学习示例
2014/03/21 PHP
ThinkPHP使用PHPExcel实现Excel数据导入导出完整实例
2014/07/22 PHP
php实现的Captcha验证码类实例
2014/09/22 PHP
动态表单验证的操作方法和TP框架里面的ajax表单验证
2017/07/19 PHP
WebGame《逆转裁判》完整版 代码下载(1月24日更新)
2007/01/29 Javascript
测试你的JS的掌握程度的代码
2009/12/09 Javascript
JavaScript中的eval()函数详解
2013/08/22 Javascript
jquery获取当前元素索引值用法实例
2015/06/10 Javascript
基于jquery实现智能表单验证操作
2016/05/09 Javascript
Jquery把获取到的input值转换成json
2017/05/15 jQuery
js保留两位小数方法总结
2018/01/31 Javascript
JavaScript中使用import 和require打包后实现原理分析
2018/03/07 Javascript
详解Angular操作cookies方法
2018/06/01 Javascript
详解浏览器缓存和webpack缓存配置
2018/07/06 Javascript
小程序实现自定义导航栏适配完美版
2019/04/02 Javascript
Vue使用Canvas绘制图片、矩形、线条、文字,下载图片
2019/04/26 Javascript
layui table 列宽百分比显示的实现方法
2019/09/28 Javascript
vue 实现v-for循环回来的数据动态绑定id
2019/11/07 Javascript
[11:12]2018DOTA2国际邀请赛寻真——绿色长城OpTic
2018/08/10 DOTA
pycharm 使用心得(九)解决No Python interpreter selected的问题
2014/06/06 Python
python函数的万能参数传参详解
2019/07/26 Python
Django ORM 聚合查询和分组查询实现详解
2019/08/09 Python
python中sort sorted reverse reversed函数的区别说明
2020/05/11 Python
python实现简单文件读写函数
2021/02/25 Python
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢?
2016/08/18 面试题
超市客服工作职责
2014/06/11 职场文书
雾霾停课通知
2015/04/24 职场文书
庆元旦主持词
2015/07/06 职场文书
2016中学教师读书心得体会
2016/01/13 职场文书
Java循环队列与非循环队列的区别总结
2021/06/22 Java/Android
TaiShan 200服务器安装Ubuntu 18.04的图文教程
2022/06/28 Servers
Go结合Gin导出Mysql数据到Excel表格
2022/08/05 Golang