由php手册中可以看到对list的定义:

list — 把数组中的值赋给一些变量,像 array() 一样,这不是真正的函数,而是语言结构。list() 用一步操作给一组变量进行赋值。

array list ( mixed $varname [, mixed $... ] )

可以看到list()的返回值一个数组;

(1)使用list交换两个变量的值:

$a = 'sb';
$b = 'you';
list($a,$b) = array($b,$a);
echo $a,$b

(2)官方文档中的栗子

<?php$info = array('coffee', 'brown', 'caffeine');// 列出所有变量
list($drink, $color, $power) = $info;
echo "$drink is $color and $power makes it special.\n";// 列出他们的其中一个
list($drink, , $power) = $info;
echo "$drink has $power.\n";// 或者让我们跳到仅第三个
list( , , $power) = $info;
echo "I need $power!\n";// list() 不能对字符串起作用
list($bar) = "abcde";
var_dump($bar); // NULL
?>

(3)list的嵌套

<?phplist($a, list($b, $c)) = array(1, array(2, 3));var_dump($a, $b, $c);?>
int(1)
int(2)
int(3)

Warning

list() 从最右边一个参数开始赋值。如果你用单纯的变量,不用担心这一点。 但是如果你用了具有索引的数组,通常你期望得到的结果和在 list() 中写的一样是从左到右的,但实际上不是。 它是以相反顺序赋值的。

Warning

在 list() 执行过程中修改数组(比如使用 list($a, $b) = $b)将会产生不可预知的结果。

Note:

list() 仅能用于数字索引的数组并假定数字索引从 0 开始。

(4)list()与each()组合使用来遍历数组

1,each()介绍

array each ( array &$array )

返回数组中当前的键/值对并将数组指针向前移动一步

在执行 each() 之后,数组指针将停留在数组中的下一个单元或者当碰到数组结尾时停留在最后一个单元。如果要再用 each 遍历数组,必须使用 reset()。

返回值

返回 array 数组中当前指针位置的键/值对并向前移动数组指针。键值对被返回为四个单元的数组,键名为01key和 value。单元 0 和 key 包含有数组单元的键名,1 和 value 包含有数据。

如果内部指针越过了数组的末端,则 each() 返回 FALSE

2,举个栗子

<?php
$fruit = array('a' => 'apple', 'b' => 'banana', 'c' => 'cranberry');reset($fruit);
while (list($key, $val) = each($fruit)) {echo "$key => $val\n";
}
?>
以上例程会输出:a => apple
b => banana
c => cranberry
Caution
因为将一个数组赋值给另一个数组时会重置原来的数组指针,因此在上边的例子中如果我们在循环内部将 $fruit 赋给了另一个变量的话将会导致无限循环。

转载于:https://www.cnblogs.com/isykw/p/6268564.html

list()的相关问题相关推荐

  1. Redis 笔记(02)— keys 键相关命令(查询数据库key数量、判断key是否存在、指定key过期时间、查看key类型、查看key剩余秒数、选择数据库、删除key、删除数据库)

    1. keys 键相关命令 命令 说明 dbsize 返回当前数据路的key数量 exists key 测试指定key是否存在 expire key seconds 为key指定过期时间 type k ...

  2. 国民技术芯片相关产业研发

    国民技术芯片相关产业研发 国民技术股份有限公司--塑造网络社会信息安全DNA,以原始创新技术满足人们安全便捷的网络生活需求.2000年公司成立,是承担国家"909"超大规模集成电路 ...

  3. C++ OP相关注意事项

    C++ OP相关注意事项 Paddle中Op的构建逻辑 1.Paddle中Op的构建逻辑 Paddle中所有的Op都继承自OperatorBase,且所有的Op都是无状态的,每个Op包含的成员变量只有 ...

  4. 2021年大数据HBase(十四):HBase的原理及其相关的工作机制

    全网最详细的大数据HBase文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 HBase的原理及其相关的工作机制 一.HBase的flus ...

  5. 2021年大数据HBase(五):HBase的相关操作JavaAPI方式

    全网最详细的大数据HBase文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 前言 HBase的相关操作-JavaAPI方式 一.需求说明 ...

  6. 2021年大数据HBase(四):HBase的相关操作-客户端命令式!【建议收藏】

    全网最详细的大数据HBase文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 前言 HBase的相关操作-客户端命令式 1.进入HBase ...

  7. 2021年大数据Spark(二十五):SparkSQL的RDD、DF、DS相关操作

      目录 RDD.DF.DS相关操作 SparkSQL初体验 SparkSession 应用入口 获取DataFrame/DataSet 使用样例类 指定类型+列名 自定义Schema ​​​​​​​ ...

  8. 【网站汇总】论文相关

    目录 一.文献检索 1.Connected Papers 2.Slager 3.papers with code 4.arXiv 二.文献管理 1.Mendeley 一.文献检索 1.Connecte ...

  9. 论防止爆T的重要性:N相关孪生素数

    N相关孪生素数 Time Limit: 1 Sec  Memory Limit: 128 MB   64bit IO Format: %lld Description 如果A和B都是素数,而且A和B相 ...

  10. Python学习笔记17:标准库之数学相关(math包,random包)

    前面几节看得真心累.如今先来点简单easy理解的内容. 一 math包 math包主要处理数学相关的运算. 常数 math.e   # 自然常数e math.pi  # 圆周率pi 运算函数 math ...

最新文章

  1. Transformer, BERT, ALBERT, XLNet全面解析(ALBERT第一作者亲自讲解)
  2. r语言和python-r语言和python学哪个
  3. [转载]基于MVC4+EasyUI的Web开发框架经验总结(8)--实现Office文档的预览
  4. 从C10K到C10M高性能网络的探索与实践
  5. 【Vue 快速入门】从零开始搭建 VUE + Element UI后台管理系统框架
  6. oracle数据库静态启动,ORACLE数据库的连接
  7. 镜像资源的使用:100倍速度提升不是梦!
  8. ROS联合Webots之实现趣味机器人巡线刷圈
  9. CC2530单片机开发--串口
  10. LED字体下载,可视化大屏,数据可视化必备
  11. MATLAB 绘制对数图操作陷阱 hold on的位置
  12. 你别不信,安卓机用户才是苹果机涨价的最大受害者
  13. Photoshop通过抠图法给照片换背景-PS换背景教程
  14. 周易六十四卦——震为雷卦
  15. 移动魔百盒CM311-3-YST-晨星MSO9385-语音首页正常-TTL刷机包
  16. 写毕业论文更新目录时,如何让格式不会变?
  17. Java封装FushionCharts
  18. 使用word绘制钟表刻度表盘
  19. 2.ST Motor Control Workbench 及相应环境的安装
  20. 关于CV的一些资料总结,附链接

热门文章

  1. ceph 查看是否在恢复_Ceph monitor故障恢复探讨
  2. idea怎么调试jsp页面_JSP+Servlet+C3P0+Mysql实现的YCU movies电影网站
  3. centos6.8yum安装mysql_centos6.8 yum安装mysql 5.6 (完整)
  4. mysql objectid_MongoDB 的objectid和UUID
  5. sql以什么开头怎么写_如果让你给自己的人生写一个开头,你会怎么写?
  6. 卷积云神经网络_有卷积云的北京天空好美!是不是还有池化云?全连接云?
  7. 函数调用方式以及this指向
  8. ORACLE数据库测试题(一)
  9. 基于Hadoop集群的Spark集群搭建
  10. wlop一张多少钱_求解实木家具沙发垫多少钱一张