您的位置:首页 > 编程语言 > PHP开发

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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: