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中使用curl_init函数的说明
Nov 02 PHP
MySQL连接数超过限制的解决方法
Jul 17 PHP
php删除页面记录 同时刷新页面 删除条件用GET方式获得
Jan 10 PHP
php过滤XSS攻击的函数
Nov 12 PHP
推荐几款用 Sublime Text 开发 Laravel 所用到的插件
Oct 30 PHP
php中使用base HTTP验证的方法
Apr 20 PHP
ThinkPHP路由机制简介
Mar 23 PHP
[原创]PHP字符串中插入子字符串方法总结
May 06 PHP
php函数mkdir实现递归创建层级目录
Oct 27 PHP
ThinkPHP下表单令牌错误与解决方法分析
May 20 PHP
thinkPHP3.2.3结合Laypage实现的分页功能示例
May 28 PHP
PHP使用PDO实现mysql防注入功能详解
Dec 20 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
IIS7.X配置PHP运行环境小结
2011/06/09 PHP
PHP自动识别字符集并完成转码详解
2013/08/02 PHP
ThinkPHP3.1新特性之Action参数绑定
2014/06/19 PHP
如何解决PHP无法实现多线程的问题
2015/09/25 PHP
PHP实现图片不变型裁剪及图片按比例裁剪的方法
2016/01/14 PHP
Smarty实现页面静态化(生成HTML)的方法
2016/05/23 PHP
Laravel框架在本地虚拟机快速安装的方法详解
2018/06/11 PHP
firefox中JS读取XML文件
2006/12/21 Javascript
Ext面向对象开发实践(续)
2008/11/18 Javascript
jquery中get,post和ajax方法的使用小结
2014/02/04 Javascript
JS对img标签进行优化使用onerror显示默认图像
2014/04/24 Javascript
JS根据生日算年龄的方法
2015/05/05 Javascript
JavaScript实现选择框按比例拖拉缩放的方法
2015/08/04 Javascript
jQuery实现带幻灯的tab滑动切换风格菜单代码
2015/08/27 Javascript
Bootstrap选项卡与Masonry插件的完美结合
2016/07/06 Javascript
jQ处理xml文件和xml字符串的方法(详解)
2016/11/22 Javascript
Angular6 正则表达式允许输入部分中文字符
2018/09/10 Javascript
elementui实现预览图片组件二次封装
2020/12/29 Javascript
[01:32:22]DOTA2-DPC中国联赛 正赛 Ehome vs VG BO3 第一场 2月5日
2021/03/11 DOTA
一键搞定python连接mysql驱动有关问题(windows版本)
2016/04/23 Python
Python 比较两个数组的元素的异同方法
2017/08/17 Python
将string类型的数据类型转换为spark rdd时报错的解决方法
2019/02/18 Python
Django用户认证系统 Web请求中的认证解析
2019/08/02 Python
Pandas0.25来了千万别错过这10大好用的新功能
2019/08/07 Python
python numpy 常用随机数的产生方法的实现
2019/08/21 Python
Python基于Dlib的人脸识别系统的实现
2020/02/26 Python
Python中使用threading.Event协调线程的运行详解
2020/05/02 Python
Python SQLAlchemy库的使用方法
2020/10/13 Python
优秀员工年终发言演讲稿
2014/01/01 职场文书
办公室文员工作职责
2014/01/31 职场文书
《春天来了》教学反思
2014/04/07 职场文书
工地宣传标语
2014/06/18 职场文书
会计师事务所实习证明
2014/11/16 职场文书
优秀班集体申报材料
2014/12/25 职场文书
2015年度团总支工作总结
2015/04/23 职场文书
Sql-Server数据库单表查询 4.3实验课
2021/04/05 SQL Server