Как пропустить ассоциативный массив и получить ключ?

Мой ассоциативный массив:

$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); } 

Никто не ответил с регулярным циклом? Иногда я нахожу его более читаемым и предпочитаю больше
Итак, вот оно:

 $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 в каждом цикле.

  foreach($arr as $key=>$value){ echo($key); // key }