Мой ассоциативный массив:
$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 }