拥有:
$a as $key => $value;
与:
相同$a=array();
吗
答案 0 :(得分:3)
不,不是。它更像是
list($key, $value) = each($arr);
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);