Note that using key($array) in a foreach loop may have unexpected results.
When requiring the key inside a foreach loop, you should use:
foreach($array as $key => $value)
I was incorrectly using:
<?php
foreach($array as $value)
{
$mykey = key($array);
}
?>
and experiencing errors (the pointer of the array is already moved to the next item, so instead of getting the key for $value, you will get the key to the next value in the array)
CORRECT:
<?php
foreach($array as $key => $value)
{
$mykey = $key;
}
A noob error, but felt it might help someone else out there.key
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
key
Референца за `function.key.php` со подобрена типографија и навигација.
key
(PHP 4, PHP 5, PHP 7, PHP 8)
key — Земи клуч од низа
= NULL
key() враќа елемент со индекс на тековната позиција во низата.
Параметри
array-
Низата.
Вратени вредности
На key() функцијата едноставно го враќа клучот на елементот од низата на кој моментално покажува внатрешниот покажувач. Не го поместува покажувачот на кој било начин. Ако внатрешниот покажувач покажува надвор од крајот на списокот со елементи или низата е празна, key() returns null.
Дневник на промени
| Верзија | = NULL |
|---|---|
| 8.1.0 | Повикувањето на оваа функција на objects е застарено. Или преобратете го object во array using get_mangled_object_vars() прво, или користете ги методите обезбедени од класа што имплементира Итератор, како на пр. ArrayIterator, наместо тоа. |
| 7.4.0 | Инстанци на SPL класите сега се третираат како празни објекти без својства наместо да се повикува Итератор метод со исто име како оваа функција. |
Примери
Пример #1 key() example
<?php
$array = array(
'fruit1' => 'apple',
'fruit2' => 'orange',
'fruit3' => 'grape',
'fruit4' => 'apple',
'fruit5' => 'apple');
// this cycle echoes all associative array
// key where value equals "apple"
while ($fruit_name = current($array)) {
if ($fruit_name == 'apple') {
echo key($array), "\n";
}
next($array);
}
?>Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред
fruit1 fruit4 fruit5
Види Исто така
- current() - Врати ја тековната ставка во низата
- next() - Помести го внатрешниот покажувач на низата
- array_key_first() , по повикувањето на
- foreach
Белешки од корисници 3 белешки
Suppose if the array values are in numbers and numbers contains `0` then the loop will be terminated. To overcome this you can user like this
<?php
$array = array(
'0' => '5',
'1' => '2',
'2' => '0',
'3' => '3',
'4' => '1');
// wrong approach
while ($fruit_name = current($array)) {
echo key($array).'<br />';
next($array);
}
// the way will be break loop when arra('2'=>0) because its value is '0', while(0) will terminate the loop
// correct approach
while ( ($fruit_name = current($array)) !== FALSE ) {
echo key($array).'<br />';
next($array);
}
//this will work properly
?>