each
(PHP 4, PHP 5, PHP 7)
each — Возвращает текущую пару ключа и значения массива и сдвигает указатель на одну позицию вперёд
Внимание
Начиная с PHP 7.2.0 функция УСТАРЕЛА,
а в PHP 8.0.0 функцию УДАЛИЛИ.
Полагаться на функцию настоятельно не рекомендуют.
Описание
После выполнения функции 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
)
Функцию 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
- Итерация объектов