php 中的each()和list()
2015-10-14 18:36
633 查看
each()函数:
each()函数返回指针指向的当前键值对,并将指针移向下一位;返回为四个单元的数组;键名为‘1’和‘value’的是键值,键名为‘0’和’key‘的是键名;当指针移除数组末端时返回false;
例:
$a=array('1'=>'你','2'=>'好','3'=>'吗'); var_dump(each($a)); var_dump(each($a)); var_dump(each($a)); var_dump(each($a));
返回:
array 1 => string '你' (length=3) 'value' => string '你' (length=3) 0 => int 1 'key' => int 1 array 1 => string '好' (length=3) 'value' => string '好' (length=3) 0 => int 2 'key' => int 2 array 1 => string '吗' (length=3) 'value' => string '吗' (length=3) 0 => int 3 'key' => int 3 boolean false
以下两种语句输出效果等价:
foreach($prices as $key => $val){ echo $key."-".$value."<br/>"; } 和 while($element = each($prices)){ echo $element['key']."-".$element['value']."<br/>"; }
还有一种更高端的方式,设计到接下来分析的list()函数,可以先看一下:
while(list($product,$price) = each($prices)){ echo"$product - $price<br/>"; }
list()
list() 函数用数组中的元素为一组变量赋值。list()实际上是一种语言结构和array()一样。例:
$a=array('a','b','c'); list($q,$b,$c)=$a; var_dump($q,$b,$c);
返回
string 'a' (length=1) string 'b' (length=1) string 'c' (length=1)
但是 ,如果你的数组不是默认数字索引数组即键名从0开始的数字时会报错。
例:
// $b=array('q'=>1,'w'=>2,'e'=>3); // list($w,$e,$q)=$b; // var_dump($q,$w,$e);
是错误的。
当数组为数字数组时,但键名不从‘0’开始时,需要空出从‘0’开始的键值。
例:
$a=array('1'=>'你','2'=>'好','3'=>'吗'); list( ,$w,$e,$q)=$a; var_dump($q,$w,$e);
返回:
string '吗' (length=3) string '你' (length=3) string '好' (length=3)
相关文章推荐
- php 框架 yii control 中使用布局
- PHP导出CSV案列
- Yii2中应用子模块下的内容
- php上传$_FILES 无法取值
- (一) Laravel学习笔记之构造服务端API——数据填充//待完善V1.0版
- zend studio如何使用wamp集成环境
- PHP IDE phpstorm 快捷键
- PHP 自定义字符串中的变量名解析
- SecurityContextPersistenceFilter
- C: Run a System Command and Get Output? 在C程序中调用工具,并且得到结果。
- UltraEdit用Ftp连unix服务器常用配置
- PHP将HTML转换成各种格式图片或PDF
- PHP变量
- intellij idea 高级用法之:集成JIRA、UML类图插件、集成SSH、集成FTP、Database管理
- 设置phpstorm sass监听器
- Yii2 选择布局的方式
- 用PHP的socket实现客户端到服务端的通信
- ThinkPHP中select()与find()的区别
- MAC PHP MARK
- Thinkphp 模板JS使用U方法注意事项