理解数组是php中foreach的一部分

时间:2010-09-07 11:58:38

标签: php arrays foreach

拥有:

$a as $key => $value;

与:

相同
$a=array();

4 个答案:

答案 0 :(得分:3)

不,不是。它更像是

list($key, $value) = each($arr);

See the manual

foreach ($arr as $key => $value) {
    echo "Key: $key; Value: $value<br />\n";
}

相同
$arr = array("one", "two", "three");
reset($arr);
while (list($key, $value) = each($arr)) {
    echo "Key: $key; Value: $value<br />\n";
}

另见

答案 1 :(得分:1)

首先,它必须说

foreach($a as $key => $value)

然后,据我所知,

foreach($a = array())

无法编译。

那就是说,如果你预先,你遍历一个数组的元素。使用'as'关键字,您可以获得每个元素的键/值对,其中$ key将是您可以获得$ value的索引:

$value = $a[$key];

这回答了你的问题吗?如果没有,请说明。

修改
在其他编程语言中,它会拼写类似

的东西
foreach($key => $value in $a)

或(C#)

foreach(KeyValuePair<type1, type2> kv in a)

我认为更直观,但基本相同。

答案 2 :(得分:1)

如果您有以下内容:

$a = array('foo' => array('element1', 'element2'), 'bar' => array('sub1', 'sub2'));

如果你在foreach循环中使用$a as $key=> $value

$key将是'foo'$value将在第一次迭代中array('element1', 'element2'),在第二次$key == 'bar'$value == array('sub1', 'sub2')中。{ / p>

答案 3 :(得分:0)

如果使用foreach循环数组,则数组是括号内的第一个表达式。

它可以是变量,如$ a,或数组文字,如数组(1,2,3)。以下循环是相同的:

使用数组文字:

foreach(array(1, 2, 3) as $number)
    print($number);

使用变量:

$a = array(1, 2, 3);
foreach($a as $number)
    print($number);