tes*_*001 3 php list construct
$colors = array(
'r' => 'a',
'g' => 'b',
'b' => 'c'
);
list($v, $k) = each($colors);
echo $v . " " . $k
Run Code Online (Sandbox Code Playgroud)
现在上面的打印ra我很惊讶,因为我认为'list'构造只适用于数值数组.它为什么有效?
是的你是正确的list()只适用于数值数组,并假设数字索引从0开始.但他解释为什么你的代码正在工作,因为each.
each traverse an array因此keys,numerical如果运行以下命令,则转换为示例:
$foo = array("r"=>"a");
$bar = each($foo);
echo "<pre>";
print_r($bar);
Run Code Online (Sandbox Code Playgroud)
产量
Array
(
[1] => a
[value] => a
[0] => r
[key] => r
)
Run Code Online (Sandbox Code Playgroud)
您可以使用array('r' => 'a');已经转换的,array(0 => 'r', 1 => 'a');因此您现在可以使用list它们numerical keys
each返回数组中的当前键和值对并使数组光标前进.
each返回数组数组中的当前键和值对.该对以四元素数组返回,其中包含键0,1,键和值.元素0和键包含数组元素的键名,1和值包含数据.
也
each()通常与list()一起用于遍历数组,这是一个例子: