each

(PHP 4, PHP 5, PHP 7)

eachВозвращает текущую пару ключа и значения массива и сдвигает указатель на одну позицию вперёд

Внимание

Эта функция объявлена УСТАРЕВШЕЙ начиная с PHP 7.2.0 и была УДАЛЕНА в версии PHP 8.0.0. Использовать эту функцию крайне не рекомендуется.

Описание

each(array|object&$array): array

Возвращает текущую пару ключа и значения массива и продвигает внутренний указатель массива на одну позицию.

После выполнения функции each() указатель массива останется на следующем элементе или за последним элементом, если указатель достигнет конца массива. Для повторного обхода каждого элемента массива, нужно вызвать функцию reset().

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

array

Входной массив.

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

Возвращает текущую пару ключа и значения массива array. Пара возвращается в массиве из четырёх элементов с ключами 0, 1, key и value. Элементы с ключами 0 и key содержат имя ключа элемента массива, а ключи 1 и value содержат данные.

Если внутренний указатель массива указывает за пределы массива, функция each() вернёт false.

Примеры

Пример #1 Примеры использования функции each()

<?php

$foo
= array("bob", "fred", "jussi", "jouni", "egon", "marliese");
$bar = each($foo);
print_r($bar);

?>

Переменная $bar теперь содержит следующие пары ключей и значений:

Array ( [1] => bob [value] => bob [0] => 0 [key] => 0 )

<?php

$foo
= array("Robert" => "Bob", "Seppo" => "Sepi");
$bar = each($foo);
print_r($bar);

?>

Переменная $bar теперь содержит следующие пары ключей и значений:

Array ( [1] => Bob [value] => Bob [0] => Robert [key] => Robert )

Функцию each() часто вызывают совместно с функцией list() для обхода массива, как в этом примере:

Пример #2 Обход массива функцией each()

<?php

$fruit
= array('a' => 'apple', 'b' => 'banana', 'c' => 'cranberry');

reset($fruit);
while (list(
$key, $val) = each($fruit)) {
echo
"$key => $val\n";
}

?>

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

a => apple b => banana c => cranberry
Предостережение

Поскольку присвоение массива другой переменной сбрасывает указатель исходного массива, пример выше вызвал бы бесконечный цикл, если бы внутри цикла переменную $fruit присвоили другой переменной.

Внимание

Функция each() также принимает объекты, но иногда возвращает неожиданные результаты. Поэтому перебирать свойства объекта функцией each() не рекомендуют.

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

  • key() - Получает ключ массива
  • list() - Присваивает переменным значения похожим на массивы синтаксисом
  • current() - Возвращает текущий элемент массива
  • reset() - Устанавливает внутренний указатель массива на первый элемент
  • next() - Сдвигает внутренний указатель массива на одну позицию вперёд
  • prev() - Сдвигает внутренний указатель массива на одну позицию назад
  • foreach
  • Итерация объектов
To Top