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计算上一个月的今天
May 23 PHP
深入浅析PHP7.0新特征(五大新特征)
Oct 29 PHP
PHP实现基于文本的摩斯电码生成器
Jan 11 PHP
PHP利用超级全局变量$_POST来接收表单数据的实例
Nov 05 PHP
php微信公众号开发(2)百度BAE搭建和数据库使用
Dec 15 PHP
php生成二维码图片方法汇总
Dec 17 PHP
SCP远程VPS快速搬家和WDCP升级php5.3安装memcached和eaccelerator教程
Jul 27 PHP
微信企业转账之入口类分装php代码
Oct 01 PHP
PHP超低内存遍历目录文件和读取超大文件的方法
May 01 PHP
PHP与Web页面的交互示例详解一
Aug 04 PHP
PHP unset函数原理及使用方法解析
Aug 14 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
C# Assembly类访问程序集信息
2009/06/13 PHP
PHP使用mysql_fetch_object从查询结果中获取对象集的方法
2015/03/18 PHP
PHP中的session安全吗?
2016/01/22 PHP
jQuery.ajax 用户登录验证代码
2010/10/29 Javascript
JavaScript中“+”的陷阱深刻理解
2012/12/04 Javascript
jquery中文乱码的多种解决方法
2013/06/21 Javascript
jQuery中验证表单提交方式及序列化表单内容的实现
2014/01/06 Javascript
jquery自定义滚动条插件示例分享
2014/02/21 Javascript
JavaScript实现简单的星星评分效果
2017/05/18 Javascript
浅谈JS封闭函数、闭包、内置对象
2017/07/18 Javascript
微信小程序之前台循环数据绑定
2017/08/18 Javascript
Koa2微信公众号开发之消息管理
2018/05/16 Javascript
jQuery实现下拉菜单动态添加数据点击滑出收起其他功能
2018/06/14 jQuery
vue 解决数组赋值无法渲染在页面的问题
2019/10/28 Javascript
Vue中import from的来源及省略后缀与加载文件夹问题
2020/02/09 Javascript
React实现阿里云OSS上传文件的示例
2020/08/10 Javascript
[16:14]教你分分钟做大人:米拉娜(HEROS)
2014/11/24 DOTA
Python实现统计英文单词个数及字符串分割代码
2015/05/28 Python
深入讲解Python中的迭代器和生成器
2015/10/26 Python
深入理解python多进程编程
2016/06/12 Python
Python动刷新抢12306火车票的代码(附源码)
2018/01/24 Python
python截取两个单词之间的内容方法
2018/12/25 Python
python监控进程状态,记录重启时间及进程号的实例
2019/07/15 Python
django框架中ajax的使用及避开CSRF 验证的方式详解
2019/12/11 Python
Python matplotlib画图时图例说明(legend)放到图像外侧详解
2020/05/16 Python
python requests库的使用
2021/01/06 Python
启动一个线程是用run()还是start()
2016/12/25 面试题
Java面试题:说出如下代码的执行结果
2015/10/30 面试题
2014信息技术专业毕业生自我评价
2014/01/17 职场文书
科技开发中心办公室主任岗位责任制
2014/02/10 职场文书
宾馆总经理岗位职责
2014/02/14 职场文书
三八红旗手先进事迹材料
2014/05/13 职场文书
硕士生找工作求职信
2014/07/05 职场文书
统计员岗位职责
2015/02/11 职场文书
2015年保洁员工作总结
2015/05/04 职场文书
CSS实现鼠标悬浮动画特效
2023/05/07 HTML / CSS