数组php foreach循环

时间:2013-04-24 11:14:42

标签: 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是如何循环的。

5 个答案:

答案 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;
}