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 相关文章推荐
excellent!――ASCII Art(由目标图象生成ascii)
Feb 20 PHP
PHP获取网卡地址的代码
Apr 09 PHP
php sprintf()函数让你的sql操作更安全
Jul 23 PHP
php 什么是PEAR?
Mar 19 PHP
关于尾递归的使用详解
May 02 PHP
php采集中国代理服务器网的方法
Jun 16 PHP
php 一维数组的循环遍历实现代码
Apr 10 PHP
基于php编程规范(详解)
Aug 17 PHP
PHP 使用二进制保存用户状态的实例
Jan 29 PHP
php封装的pdo数据库操作工具类与用法示例
May 08 PHP
Yii框架操作cookie与session的方法实例详解
Sep 04 PHP
浅谈PHP array_search 和 in_array 函数效率问题
Oct 15 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数组函数序列 之shuffle()和array_rand() 随机函数使用介绍
2011/10/29 PHP
理解PHP中的stdClass类
2014/04/18 PHP
JS模拟多线程
2007/02/07 Javascript
JQuery触发radio或checkbox的change事件
2012/12/18 Javascript
jQuery编辑器KindEditor4.1.4代码高亮显示设置教程
2013/03/01 Javascript
JS获取后台Cookies值的小例子
2013/03/04 Javascript
Javascript Ajax异步读取RSS文档具体实现
2013/12/12 Javascript
JavaScript中的对象与JSON
2015/07/03 Javascript
JavaScript中iframe实现局部刷新的几种方法汇总
2016/01/06 Javascript
Bootstrap中定制LESS-颜色及导航条(推荐)
2016/11/21 Javascript
JS中传递参数的几种不同方法比较
2017/01/20 Javascript
原生JS发送异步数据请求
2017/06/08 Javascript
基于Vue2.X的路由和钩子函数详解
2018/02/09 Javascript
vue中如何让子组件修改父组件数据
2018/06/14 Javascript
js调用设备摄像头的方法
2018/07/19 Javascript
详解基于Vue/React项目的移动端适配方案
2019/08/23 Javascript
jQuery实现的分页插件完整示例
2020/05/26 jQuery
python给图像加上mask,并提取mask区域实例
2020/01/19 Python
实现Python3数组旋转的3种算法实例
2020/09/16 Python
python实现逻辑回归的示例
2020/10/09 Python
使用Django的JsonResponse返回数据的实现
2021/01/15 Python
CSS3打造百度贴吧的3D翻牌效果示例
2017/01/04 HTML / CSS
UGG雪地靴荷兰官网:UGG荷兰
2016/09/09 全球购物
Nixon手表英国官网:美国尼克松手表品牌
2020/02/10 全球购物
大学生就业自我鉴定
2013/10/26 职场文书
工程业务员工作职责
2013/12/07 职场文书
办公室内勤岗位职责范本
2013/12/09 职场文书
自荐书模板
2013/12/19 职场文书
捐款倡议书范文
2014/02/02 职场文书
销售目标责任书
2014/07/23 职场文书
教师政风行风自查自纠报告
2014/10/21 职场文书
学习群众路线的心得体会
2014/11/05 职场文书
2019年市场部个人述职报告(三篇)
2019/10/23 职场文书
JavaScript原始值与包装对象的详细介绍
2021/05/11 Javascript
Java 超详细讲解hashCode方法
2022/04/07 Java/Android
JavaScript实现一键复制内容剪贴板
2022/07/23 Javascript