欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

list()和each()有关问题

程序员文章站 2022-05-30 15:14:09
...
list()和each()问题
本帖最后由 u014402634 于 2015-04-02 21:06:29 编辑

$fruit = array('a' =>'apple','b'=>'banana','c'=>'cranberry' );
reset($fruit);
while (list($key,$val)=each($fruit))
{
echo "$key=>$val
";
}
//------------------------------------------------------------------------


each()不是由4个元素构成么
比如第一个是 Array ( [1] => apple [value] => apple [0] => a [key] => a )
看手册说list()是从最右边参数开始赋值的
each()4个元素究竟怎么赋值给list两个元素 按理说不是把前两个apple赋值给$key和$val了吗?
为啥最后echo能正常输出 对应的 键值对 呢?



------解决思路----------------------
你不看手册的吗?
注: list() 仅能用于数字索引的数组并假定数字索引从 0 开始。

$fruit = array('a' =>'apple');
print_r(each($fruit));
Array
(
[1] => apple
[value] => apple
[0] => a
[key] => a
)
reset($fruit);
list($key, $value) = each($fruit);
echo "$key => $value";
a => apple
只有数字索引的部分被指派
这样清楚点
$ar = array('a', 'b', 'c' => 'c');
list($a, $b, $c) = $ar; //会有 Undefined offset: 2 警告
echo "$a $b $c\n";

是按下标递增分配的
$ar = array(1 => 'a', 2 => 'b', 0 => 'c');
list($a, $b, $c) = $ar;
echo "$a $b $c\n";
c a b
是从右往左分配的
$ar = array('a', 'b', 'c');
list($aa[$b][$c], $b, $c) = $ar;
print_r($aa);
Array
(
[b] => Array
(
[c] => a
)

)
list()和each()有关问题

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

相关文章

相关视频


网友评论

文明上网理性发言,请遵守 新闻评论服务协议

我要评论
  • list()和each()有关问题
  • 专题推荐