<?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我想问一下,第一次each()的时候,print_r($fruit)的结果应该是:
Array ( [1] => apple [value] => apple [0] => a [key] => a )
这个时候list($key,$val),我们可以看到这个数组是四个参数,而list本身是2个参数,而且顺序怎么会刚好是a赋给$key,apple赋给$val呢?
$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我想问一下,第一次each()的时候,print_r($fruit)的结果应该是:
Array ( [1] => apple [value] => apple [0] => a [key] => a )
这个时候list($key,$val),我们可以看到这个数组是四个参数,而list本身是2个参数,而且顺序怎么会刚好是a赋给$key,apple赋给$val呢?
<?php
$a=array(1,2,3);
list($m,$n,$g)=$a;
?>
$m对应1,$n对应2,$n对应3。
所以就有所疑问,
按道理来说,上面的$key应该是对应apple,然后$value也对应apple,还多出2个参数。。
$aa=array("a"=>1,"b"=>2,"c"=>3);
list($m,$n)=$aa;
echo $m;
?>
这样的写法也有问题????????????
没错就没问题,有错就有问题
[User:root Time:12:36:15 Path:/home/liangdong/php]$ php list.php
PHP Notice: Undefined offset: 1 in /home/liangdong/php/list.php on line 3Notice: Undefined offset: 1 in /home/liangdong/php/list.php on line 3
PHP Notice: Undefined offset: 0 in /home/liangdong/php/list.php on line 3Notice: Undefined offset: 0 in /home/liangdong/php/list.php on line 3
[User:root Time:12:36:17 Path:/home/liangdong/php]$
list只吃从0-N的数字索引数组,不是从0开始的不行,中间断开的也不行。
(
[1] => apple
[value] => apple
[0] => a
[key] => a
)
list 只作用于数字索引,因此 $key 取索引为0 的元素,$val取1的元素。有什么不对吗
按你的意思
于是会绕过
[value] => apple和[key] => a
同时由于第一次出现的是[1],所以也先绕过[1] => apple,寻找到[0] => a
把它赋给$key后,然后再回来找到[1] => apple,再将apple赋给$value、
?