Функции для работы с массивами
PHP Manual

each

(PHP 4, PHP 5)

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

Описание

array each ( array &$array )

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

После выполнения each(), указатель массива перемещается к следующему его элементу, пока не будет достигнут конец массива. Для повторного обхода массива при помощи 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() не рекомендуется.

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


Функции для работы с массивами
PHP Manual