我的关联数组:
$arr = array(
1 => "Value1",
2 => "Value2",
10 => "Value10"
);
使用以下代码,$v
填充了$arr
的值
foreach($arr as $v){
echo($v); // Value1, Value2, Value10
}
如何获得$arr
的密钥?
foreach(.....){
echo($k); // 1, 2, 10
}
答案 0 :(得分:297)
答案 1 :(得分:64)
如果你使用array_keys()
,PHP会给你一个只填充键的数组:
$keys = array_keys($arr);
foreach($keys as $key) {
echo($key);
}
或者,你可以这样做:
foreach($arr as $key => $value) {
echo($key);
}
答案 2 :(得分:30)
没人回答常规for
循环?有时候我觉得它更具可读性,而不是for
而不是foreach
所以这就是:
$array = array('key1' => 'value1', 'key2' => 'value2');
$keys = array_keys($array);
for($i=0; $i < count($keys); ++$i) {
echo $keys[$i] . ' ' . $array[$keys[$i]] . "\n";
}
/*
prints:
key1 value1
key2 value2
*/
答案 3 :(得分:10)
foreach($array as $k => $v)
其中$ k是键,$ v是值
或者,如果您只需要键,请使用array_keys()
答案 4 :(得分:7)
我使用以下循环从关联数组中获取键和值
foreach ($array as $key => $value)
{
echo "<p>$key = $value</p>";
}
答案 5 :(得分:4)
以下内容可让您同时获得密钥和值。
foreach ($arr as $key => $value)
{
echo($key);
}
答案 6 :(得分:4)
虽然可以说不太明确,但这种方法的速度大约是3.5倍(至少在我以前测试的方框上)
$foo = array(
1 => "Value1",
2 => "Value2",
10 => "Value10"
);
while($bar = each($foo)){
echo $bar[0] . " => " . $bar[1];
}
我想这可能是因为foreach在遍历它之前复制了整个数组。
答案 7 :(得分:1)
答案 8 :(得分:1)
使用$key => $val
获取密钥:
<?php
$arr = array(
1 => "Value1",
2 => "Value2",
10 => "Value10",
);
foreach ($arr as $key => $val) {
print "$key\n";
}
?>
答案 9 :(得分:1)
<?php
$names = array("firstname"=>"maurice",
"lastname"=>"muteti",
"contact"=>"7844433339");
foreach ($names as $name => $value) {
echo $name." ".$value."</br>";
}
print_r($names);
?>
答案 10 :(得分:0)
foreach($arr as $key=>$value){
echo($key); // key
}
答案 11 :(得分:0)
如果您使用嵌套的foreach()
函数,则外部数组的键会反复打印,直到内部数组的值结束。
<?php
$myArray = ['key_1' => ['value_1', 'value12'],
'key_2' => ['value_2', 'value22'],
'key_3' => ['value_3', 'value32']
];
$keysOfMyArray = array_key($myArray);
for ($x = 0; $x < count($myArray); $x++){
print "\t".$keysOfMyArray[$x]."\t\t".implode("\t\t",$myArray[$keysOfMyArray[$x]]."\n");
}
?>