如何循环访问关联数组并获取密钥?
我的关联数组:
$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 }
你可以做:
foreach ($arr as $key => $value) { echo $key; }
如PHP文档中所述 。
如果你使用array_keys()
,PHP会给你一个只有键的数组:
$keys = array_keys($arr); foreach($keys as $key) { echo($key); }
或者,你可以这样做:
foreach($arr as $key => $value) { echo($key); }
没有人回答正常循环? 有时我觉得它更可读,更喜欢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 */
foreach($array as $k => $v)
$ k是键,$ v是值
或者如果你只是需要使用数组键()
我使用下面的循环从关联数组中获取键和值
foreach ($array as $key => $value) { echo "<p>$key = $value</p>"; }
以下将允许您同时获得键和值。
foreach ($arr as $key => $value) { echo($key); }
虽然可以说是不太清楚,这种方法快大约3.5倍(至less在我用来testing的框)
$foo = array( 1 => "Value1", 2 => "Value2", 10 => "Value10" ); while($bar = each($foo)){ echo $bar[0] . " => " . $bar[1]; }
我可以想象,这是由于foreach复制整个数组之前,迭代它的事实。
使用$key => $val
来获取密钥:
<?php $arr = array( 1 => "Value1", 2 => "Value2", 10 => "Value10", ); foreach ($arr as $key => $val) { print "$key\n"; } ?>
<?php $names = array("firstname"=>"maurice", "lastname"=>"muteti", "contact"=>"7844433339"); foreach ($names as $name => $value) { echo $name." ".$value."</br>"; } print_r($names); ?>
哦,我发现它在PHP手册 。
foreach ($array as $key => $value){ statement }
当前元素的键将被分配给每个循环上的variables$键 。
foreach($arr as $key=>$value){ echo($key); // key }