Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP。使用list()和each()?_Php_List_Each - Fatal编程技术网

PHP。使用list()和each()?

PHP。使用list()和each()?,php,list,each,Php,List,Each,这是php文档中的一个工作示例代码,用于将list()与each()一起使用 我不明白它为什么这样工作和输出。因为 从中,它表示each()返回一个带有4键/值对的数组。 因此,每个($fruit)应该是这样的: Array ( [1] => yy [value] => yy [0] => xx [key] => xx ) 守则: while (list($key, $val) = each($fruit)) { echo

这是php文档中的一个工作示例代码,用于将list()与each()一起使用

我不明白它为什么这样工作和输出。因为

从中,它表示each()返回一个带有4键/值对的数组。 因此,
每个($fruit)
应该是这样的:

Array
(
    [1] => yy
    [value] => yy
    [0] => xx
    [key] => xx
)
守则:

while (list($key, $val) = each($fruit)) {
        echo "$key => $val\n";
    }
$key
不应该等于
每个($fruit)[1]
,而
$val
不应该等于
每个($fruit)[value]

注:

list()
仅适用于数值数组,并假设数值索引从0开始


换句话说,
list
按顺序主动查找数字键<代码>列表($foo,$bar)要求分配的数组具有键
0
1
,并将这些键分别分配给
$foo
$bar
。这些键在数组本身中的顺序无关紧要。

在PHP7.1中会进行更新

有什么新鲜事吗

  • list()有一个新的速记
  • list()支持命名键
list()的速记
$array=[3,5,1];
[$a,$b,$c]=$array;
用于命名密钥
$fruit=array('a'=>'苹果','b'=>'香蕉','c'=>'蔓越莓');
['a'=>$a,'b'=>$b,'c'=>$c]=$fruit;
//$a=‘苹果’
//$b=‘香蕉’;
//$c=‘蔓越莓’;

资料来源:

大获成功。感谢。注意:在PHP7
foreach
是您选择的工具时,这可能已经改变了!使用foreach,PHP迭代数组的副本,而不是实际数组。相反,当使用each()和for时,PHP会迭代原始数组。没有错,只是不同的选择。:)
Array
(
    [1] => yy
    [value] => yy
    [0] => xx
    [key] => xx
)
while (list($key, $val) = each($fruit)) {
        echo "$key => $val\n";
    }