阵列PHP的foreach循环
考虑以下阵列阵列PHP的foreach循环
$arr1=array('a'=>2,'b'=>22,'c'=>4,'d'=>10)
现在,
print_r(array_keys($arr1));
输出
Array ([0] => a [1] => b [2] => c [3] => d)
很好,因为array_keys的返回类型为数组。 甚至echo array_keys($arr1);
给出Array
作为输出。
但是,对于
foreach(array_keys($arr1) as $key)
{
echo $key.'<br/>';
}
输出abcd
有人能解释如何foreach
在这里工作,我期待下面的输出
[a] => 2
[b] => 22
[c] => 4
[d] => 10
不想要一个更好的代码,以显示我的预期的输出。只是想知道在这种情况下foreach是如何循环的。
你可以使用这个语法:
<?php
foreach($arr1 as $key => $values) {
echo $key . "=>" . $values;
}
?>
“如何输出”是问题在这里,而不是“什么sud代码来获得输出”..无论如何,谢谢.. !! – Mayur 2013-04-24 12:12:09
foreach(array_keys($arr1) as $key)
迭代的$arr1
键,依次分配当前关键$key
。 “当前”意味着当前迭代的关键。
因为这就是foreach
的工作原理。由于array_keys
返回你的数组的键(“A”,“B”,...)array_keys($arr1)
相同Array("a","b","c","d")
,这是
Array([0] => "a", [1] => "b", ...)
由于要遍历数组中键和值你只需要使用
foreach($arr1 as $key => $value){
echo "[{$key}] = {$value}<br/>";
}
array_keys($arr1)
获取数组键,所以它的循环throught [ “A”, “b”, “C”, “d”。
而且你对print_r(array_keys($arr1))
输出是错误的,因为它输出:
Array
(
[0] => a
[1] => b
[2] => c
[3] => d
)
不是你写
我给你报:
现在,
的print_r( array_keys($ ARR1));输出是
阵列([α] => 2 [B] => 22 [C] => 4 [d] => 10)
这是不正确
功能array_keys返回数组的所有键。为了得到你想要的,你应该为什么要`foreach`导致这种输出时,你必须使用类似这样
foreach($arr1 as $key => $value) {
echo $key . "=>" . $value;
}
你的'echo'是'$ key'和HTML断行?你可以用foreach($ array as $ key => $ value)在循环中获得key **和**值,然后输出。可能会有点太多,但也许看看[这个问题](http://stackoverflow.com/questions/10057671/how-foreach-actually-works?rq=1)。 – 2013-04-24 11:18:12