考虑以下数组
$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是如何循环的。
答案 0 :(得分:2)
array_keys($arr1)
获取数组键,以便循环遍历[“a”,“b”,“c”,“d”]。
此外,print_r(array_keys($arr1))
的输出错误,因为它输出:
Array
(
[0] => a
[1] => b
[2] => c
[3] => d
)
不是你写的
我引用你:
现在,对
的print_r(array_keys($ ARR1));输出
数组([a] =&gt; 2 [b] =&gt; 22 [c] =&gt; 4 [d] =&gt; 10)
这是不正确的
答案 1 :(得分:0)
您可以使用以下语法:
<?php
foreach($arr1 as $key => $values) {
echo $key . "=>" . $values;
}
?>
答案 2 :(得分:0)
foreach(array_keys($arr1) as $key)
遍历$arr1
的密钥,依次将当前密钥分配给$key
。 'current'表示当前迭代的关键。
答案 3 :(得分:0)
因为这只是foreach
的工作原理。由于array_keys
返回数组array_keys($arr1)
的键(“a”,“b”,...)与Array("a","b","c","d")
相同,这是
Array( [0] => "a", [1] => "b", ... )
由于您想要迭代数组中的键和值,您应该只使用
foreach($arr1 as $key => $value){
echo "[{$key}] = {$value}<br/>";
}
答案 4 :(得分:0)
函数array_keys返回数组的所有键。为了获得你想要的东西,你应该使用这样的东西
foreach($arr1 as $key => $value) {
echo $key . "=>" . $value;
}