php 中的each()和list()

来源:互联网 时间:1970-01-01

php 中的each()和list(),有需要的朋友可以参考下。

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 1array 1 => string '好' (length=3) 'value' => string '好' (length=3) 0 => int 2 'key' => int 2array 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)

版权声明:本文为博主原创文章,未经博主允许不得转载。


相关阅读:
Top