Как перебрать массив и получить ключ?
мой ассоциативный ряд:
$arr = array(
1 => "Value1",
2 => "Value2",
10 => "Value10"
);
используя следующий код $v заполняется $arr ' s values
foreach($arr as $v){
echo($v); // Value1, Value2, Value10
}
как я могу получить вместо?
foreach(.....){
echo($k); // 1, 2, 10
}
11 ответов:
вы можете сделать:
foreach ($arr as $key => $value) { echo $key; }как описано в PHP docs.
Если вы используете
array_keys(), PHP даст вам массив, заполненный только ключами:$keys = array_keys($arr); foreach($keys as $key) { echo($key); }В качестве альтернативы, вы можете сделать это:
foreach($arr as $key => $value) { echo($key); }
никто не ответил с обычной
forпетли? Иногда я нахожу его более читаемым и предпочитаюforoverforeach
Так вот оно:$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-значение
или если вам просто нужны ключи использовать array_keys()
Я использую следующий цикл, чтобы получить ключ и значение из ассоциативного массива
foreach ($array as $key => $value) { echo "<p>$key = $value</p>"; }
следующее позволит вам получить как ключ, так и значение одновременно.
foreach ($arr as $key => $value) { echo($key); }
хотя, возможно, менее ясный этот метод быстрее примерно в 3,5 раза (по крайней мере, на коробке, которую я использовал для тестирования)
$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 }ключ текущего элемента присваивается переменной $ key в каждом цикле.
Comments