ArrayIterator::current
(PHP 5 >= 5.0.0, PHP 7)
ArrayIterator::current — Возвращает текущий элемент в массиве
Список параметров
У этой функции нет параметров.
Возвращаемые значения
Возвращает текущий элемент array.
Примеры
Пример #1 Пример использования ArrayIterator::current()
<?php
$array = array('1' => 'one',
'2' => 'two',
'3' => 'three');
$arrayobject = new ArrayObject($array);
for($iterator = $arrayobject->getIterator();
$iterator->valid();
$iterator->next()) {
echo $iterator->key() . ' => ' . $iterator->current() . "\n";
}
?>
Результат выполнения данного примера:
1 => one 2 => two 3 => three
- PHP Руководство
- Функции по категориям
- Индекс функций
- Справочник функций
- Другие базовые расширения
- Стандартная библиотека PHP (SPL)
- Итераторы
- Функция ArrayIterator::append() - Добавить элемент
- Функция ArrayIterator::asort() - Сортирует массив по значениям
- Функция ArrayIterator::__construct() - Создает ArrayIterator
- Функция ArrayIterator::count() - Посчитать количество элементов
- Функция ArrayIterator::current() - Возвращает текущий элемент в массиве
- Функция ArrayIterator::getArrayCopy() - Возвращает копию массива
- Функция ArrayIterator::getFlags() - Получает флаги
- Функция ArrayIterator::key() - Возвращает ключ текущего элемента массива
- Функция ArrayIterator::ksort() - Сортирует массив по ключам
- Функция ArrayIterator::natcasesort() - Сортирует массив "натурально", с учетом регистра
- Функция ArrayIterator::natsort() - Сортирует массив "натурально"
- Функция ArrayIterator::next() - Перемещает указатель за следующую запись
- Функция ArrayIterator::offsetExists() - Проверяет существует ли смещение
- Функция ArrayIterator::offsetGet() - Получает значение для смещения
- Функция ArrayIterator::offsetSet() - Устанавливает значение для смещения
- Функция ArrayIterator::offsetUnset() - Сбрасывает значение по смещению
- Функция ArrayIterator::rewind() - Перемещает указатель в начало массива
- Функция ArrayIterator::seek() - Перещает указатель на выбранную позицию
- Функция ArrayIterator::serialize() - Сериализует массив
- Функция ArrayIterator::setFlags() - Устанавливает флаги, управляющие поведением
- Функция ArrayIterator::uasort() - Сортировка, определенная пользователем
- Функция ArrayIterator::uksort() - Сортировка, определенная пользователем
- Функция ArrayIterator::unserialize() - Десериализация
- Функция ArrayIterator::valid() - Проверяет, содержит ли массив еще записи
Коментарии
ArrayIterator is only used for interating simple arrays of which the value part is not another array. You can test it with a more complex array like this:
$arr = array (
\\\'Section 1\\\' => array (
\\\'Cat 1\\\' => array (
1 => array (
1 => \\\'So 1\\\',
2=> \\\'So 2\\\'
),
2 => \\\'So 2\\\'
),
\\\'Cat 2\\\' => array (
\\\'Sub-cat 1\\\' => array (
1 => \\\'So 1\\\',
2=> \\\'So 2\\\'
),
\\\'Sub-cat 2\\\' => \\\'So 2\\\'
)
),
\\\'Section 2\\\' => array (
\\\'Cat 1\\\' => array (
),
\\\'Cat 2\\\' => array (
\\\'Sub-cat 1\\\' => array (
1 => \\\'So 1\\\',
2=> \\\'So 2\\\'
),
\\\'Sub-cat 2\\\' => \\\'So 2\\\'
)
)
);
$arrayobject = new ArrayObject($arr);
for($iterator = $arrayobject->getIterator();
$iterator->valid();
$iterator->next()) {
echo $iterator->key() . \\\' => \\\' . $iterator->current() . \\\"<br />\\\";
}
The above scriptlet will return
Section 1 => Array
Section 2 => Array
because it can not recursively iterate throught the array.
Do the following instead (in PHP5.1):
$arrayIterator = new RecursiveArrayIterator($arr);
$iterator = new RecursiveIteratorIterator($arrayIterator);
foreach ($iterator as $val) {
echo $val.\\\'<br/>\\\';
}