Текущее значение массива php

Текущее значение массива php

key — Выбирает ключ из массива

Описание

key() возвращает индекс текущего элемента массива.

Список параметров

Возвращаемые значения

Функция key() просто возвращает ключ того элемента массива, на который в данный момент указывает внутренний указатель массива. Она не сдвигает указатель ни в каком направлении. Если внутренний указатель указывает вне границ массива или массив пуст, key() возвратит null .

Список изменений

Версия Описание
8.1.0 Вызов функции в объекте ( object ) объявлен устаревшим. Либо сначала преобразуйте объект ( object ) в массив ( array ) с помощью функции get_mangled_object_vars() , либо используйте методы, предоставляемые классом, реализующим интерфейс Iterator , например, ArrayIterator .
7.4.0 Экземпляры классов SPL теперь обрабатываются как пустые объекты, не имеющие свойств, вместо вызова метода Iterator с тем же именем, что и эта функция.

Примеры

Пример #1 Пример использования key()

$array = array(
‘fruit1’ => ‘apple’ ,
‘fruit2’ => ‘orange’ ,
‘fruit3’ => ‘grape’ ,
‘fruit4’ => ‘apple’ ,
‘fruit5’ => ‘apple’ );

// этот цикл выведет все ключи ассоциативного массива,
// значения которых равны «apple»
while ( $fruit_name = current ( $array )) if ( $fruit_name == ‘apple’ ) echo key ( $array ), «\n» ;
>
next ( $array );
>
?>

Результат выполнения данного примера:

Смотрите также

  • current() — Возвращает текущий элемент массива
  • next() — Перемещает указатель массива вперёд на один элемент
  • array_key_first() — Получает первый ключ массива
  • foreach

User Contributed Notes 5 notes

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:
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:
foreach( $array as $key => $value )
$mykey = $key ;
>

A noob error , but felt it might help someone else out there .

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

while ( $fruit_name = current ( $array ))

echo key ( $array ). ‘
‘ ;
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 ). ‘
‘ ;
next ( $array );
>
//this will work properly
?>

Needed to get the index of the max/highest value in an assoc array.
max() only returned the value, no index, so I did this instead.

reset ( $x ); // optional.
arsort ( $x );
$key_of_max = key ( $x ); // returns the index.
?>

(Editor note: Or just use the array_keys function)

Make as simple as possible but not simpler like this one 🙂

In addition to FatBat’s response, if you’d like to find out the highest key in an array (assoc or not) but don’t want to arsort() it, take a look at this:

$arr = [ ‘3’ => 14 , ‘1’ => 15 , ‘4’ => 92 , ’15’ => 65 ];

$key_of_max = array_search ( max ( $arr ) , $arr );

  • Функции для работы с массивами
    • array_​change_​key_​case
    • array_​chunk
    • array_​column
    • array_​combine
    • array_​count_​values
    • array_​diff_​assoc
    • array_​diff_​key
    • array_​diff_​uassoc
    • array_​diff_​ukey
    • array_​diff
    • array_​fill_​keys
    • array_​fill
    • array_​filter
    • array_​flip
    • array_​intersect_​assoc
    • array_​intersect_​key
    • array_​intersect_​uassoc
    • array_​intersect_​ukey
    • array_​intersect
    • array_​is_​list
    • array_​key_​exists
    • array_​key_​first
    • array_​key_​last
    • array_​keys
    • array_​map
    • array_​merge_​recursive
    • array_​merge
    • array_​multisort
    • array_​pad
    • array_​pop
    • array_​product
    • array_​push
    • array_​rand
    • array_​reduce
    • array_​replace_​recursive
    • array_​replace
    • array_​reverse
    • array_​search
    • array_​shift
    • array_​slice
    • array_​splice
    • array_​sum
    • array_​udiff_​assoc
    • array_​udiff_​uassoc
    • array_​udiff
    • array_​uintersect_​assoc
    • array_​uintersect_​uassoc
    • array_​uintersect
    • array_​unique
    • array_​unshift
    • array_​values
    • array_​walk_​recursive
    • array_​walk
    • array
    • arsort
    • asort
    • compact
    • count
    • current
    • end
    • extract
    • in_​array
    • key_​exists
    • key
    • krsort
    • ksort
    • list
    • natcasesort
    • natsort
    • next
    • pos
    • prev
    • range
    • reset
    • rsort
    • shuffle
    • sizeof
    • sort
    • uasort
    • uksort
    • usort
    • each

    Источник

    current

    У каждого массива имеется внутренний указатель на его «текущий» элемент, который инициализирован первым элементом, добавленным в массив.

    Список параметров

    Возвращаемые значения

    Функция current() просто возвращает значение элемента массива, на который указывает его внутренний указатель. Она не перемещает указатель куда бы то ни было. Если внутренний указатель находится за пределами списка элементов или массив пуст, current() возвращает FALSE .

    Эта функция может возвращать как boolean FALSE , так и не-boolean значение, которое приводится к FALSE . За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

    Примеры

    Пример #1 Пример использования current() и дружественных функций

    $transport = array( ‘foot’ , ‘bike’ , ‘car’ , ‘plane’ );
    $mode = current ( $transport ); // $mode = ‘foot’;
    $mode = next ( $transport ); // $mode = ‘bike’;
    $mode = current ( $transport ); // $mode = ‘bike’;
    $mode = prev ( $transport ); // $mode = ‘foot’;
    $mode = end ( $transport ); // $mode = ‘plane’;
    $mode = current ( $transport ); // $mode = ‘plane’;

    $arr = array();
    var_dump ( current ( $arr )); // bool(false)

    $arr = array(array());
    var_dump ( current ( $arr )); // array(0) < >
    ?>

    Примечания

    Замечание: Вы не сможете отличить конец массива от boolean элемента FALSE . Для корректного обхода массива, который может содержать FALSE элементы, смотрите функцию each() .

    Смотрите также

    • end() — Устанавливает внутренний указатель массива на его последний элемент
    • key() — Выбирает ключ из массива
    • each() — Возвращает текущую пару ключ/значение из массива и смещает его указатель
    • prev() — Передвигает внутренний указатель массива на одну позицию назад
    • reset() — Устанавливает внутренний указатель массива на его первый элемент
    • next() — Передвигает внутренний указатель массива на одну позицию вперёд

    Источник

    PHP current() Function

    The current() function returns the value of the current element in an array.

    Every array has an internal pointer to its «current» element, which is initialized to the first element inserted into the array.

    Tip: This function does not move the arrays internal pointer.

    • end() — moves the internal pointer to, and outputs, the last element in the array
    • next() — moves the internal pointer to, and outputs, the next element in the array
    • prev() — moves the internal pointer to, and outputs, the previous element in the array
    • reset() — moves the internal pointer to the first element of the array
    • each() — returns the current element key and value, and moves the internal pointer forward

    Syntax

    Parameter Values

    Technical Details

    Return Value: Returns the value of the current element in an array, or FALSE on empty elements or elements with no value
    PHP Version: 4+

    More Examples

    Example

    A demonstration of all related methods:

    $people = array(«Peter», «Joe», «Glenn», «Cleveland»);

    echo current($people) . «
    «; // The current element is Peter
    echo next($people) . «
    «; // The next element of Peter is Joe
    echo current($people) . «
    «; // Now the current element is Joe
    echo prev($people) . «
    «; // The previous element of Joe is Peter
    echo end($people) . «
    «; // The last element is Cleveland
    echo prev($people) . «
    «; // The previous element of Cleveland is Glenn
    echo current($people) . «
    «; // Now the current element is Glenn
    echo reset($people) . «
    «; // Moves the internal pointer to the first element of the array, which is Peter
    echo next($people) . «
    «; // The next element of Peter is Joe

    print_r (each($people)); // Returns the key and value of the current element (now Joe), and moves the internal pointer forward
    ?>

    Источник

    Читайте также:  Php array index data type
Оцените статью