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下过滤HTML代码的函数
Dec 10 PHP
php Try Catch异常测试
Mar 01 PHP
PHP性能优化 产生高度优化代码
Jul 22 PHP
PHP rawurlencode与urlencode函数的深入分析
Jun 08 PHP
PHP 动态生成静态HTML页面示例代码
Jan 15 PHP
zf框架的session会话周期及次数限制使用示例
Mar 13 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(二)
Jun 23 PHP
php的mkdir()函数创建文件夹比较安全的权限设置方法
Jul 28 PHP
PHP file_get_contents函数读取远程数据超时的解决方法
May 13 PHP
centos 7.2下搭建LNMP环境教程
Nov 20 PHP
PHP单元测试配置与使用方法详解
Dec 27 PHP
PHP Web表单生成器案例分析
Jun 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 GD绘制24小时柱状图
2008/06/28 PHP
一步一步学习PHP(8) php 数组
2010/03/05 PHP
php中关于普通表单多文件上传的处理方法
2011/03/25 PHP
php实现telnet功能示例
2014/04/08 PHP
PHP访问Google Search API的方法
2015/03/05 PHP
PHP版微信公众平台红包API
2015/04/02 PHP
PHP中应该避免使用同名变量(拆分临时变量)
2015/04/03 PHP
跨浏览器开发经验总结(四) 怎么写入剪贴板
2010/05/13 Javascript
file模式访问网页时iframe高度自适应解决方案
2013/01/16 Javascript
ExtJS4利根据登录后不同的角色分配不同的树形菜单
2014/05/02 Javascript
js代码实现点击按钮出现60秒倒计时
2021/01/28 Javascript
Bootstrap Fileinput文件上传组件用法详解
2016/05/10 Javascript
JavaScript开发Chrome浏览器扩展程序UI的教程
2016/05/16 Javascript
微信小程序 封装http请求实例详解
2017/01/16 Javascript
详解angular2封装material2对话框组件
2017/03/03 Javascript
ReactNative之键盘Keyboard的弹出与消失示例
2017/07/11 Javascript
angular写一个列表的选择全选交互组件的示例
2018/01/22 Javascript
vue-router定义元信息meta操作
2020/12/07 Vue.js
[00:09]DOTA2新版本PA至宝特效动作展示
2014/11/19 DOTA
详解Python中time()方法的使用的教程
2015/05/22 Python
Python3 socket同步通信简单示例
2017/06/07 Python
python2.7 json 转换日期的处理的示例
2018/03/07 Python
python素数筛选法浅析
2018/03/19 Python
Scrapy框架爬取西刺代理网免费高匿代理的实现代码
2019/02/22 Python
浅谈python常用程序算法
2019/03/22 Python
python数据挖掘需要学的内容
2019/06/23 Python
Python模拟登入的N种方式(建议收藏)
2020/05/31 Python
什么是python的必选参数
2020/06/21 Python
活动策划求职信模板
2014/04/21 职场文书
乡镇个人对照检查材料
2014/08/22 职场文书
个人年终总结怎么写
2015/03/09 职场文书
2016春节家属慰问信
2015/03/25 职场文书
聘用合同范本
2015/09/21 职场文书
基于nginx实现上游服务器动态自动上下线无需reload的实现方法
2021/03/31 Servers
vue-cropper组件实现图片切割上传
2021/05/27 Vue.js
el-table-column 内容不自动换行的解决方法
2022/08/14 Vue.js