ArrayIterator::seek
(PHP 5 >= 5.0.0)
ArrayIterator::seek — Перещает указатель на выбранную позицию
Описание
public void ArrayIterator::seek
( int
$position
)Внимание
К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.
Список параметров
-
position
-
Позиция, на которую нужно переместить указатель.
Возвращаемые значения
Эта функция не возвращает значения после выполнения.
- 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() - Проверяет, содержит ли массив еще записи
Коментарии
<?php
// didn't see any code demos...here's one from an app I'm working on
$array = array('1' => 'one',
'2' => 'two',
'3' => 'three');
$arrayobject = new ArrayObject($array);
$iterator = $arrayobject->getIterator();
if($iterator->valid()){
$iterator->seek(1); // expected: two, output: two
echo $iterator->current(); // two
}
?>
<?php
//seek alter the iterator's internal indice instead of the value that key() returns.
//This is a big trap if combining with uasort/natsort function.
$a = new ArrayObject([4,3,2,1]);
$it = $a->getIterator();
$it->natsort(); //The Iterator preserve the key while sorting the array
$it->rewind();
$first = $it->key(); //The first element is 1 and it's key is 3
echo $first. PHP_EOL; // 3
$it->next();
$second = $it->key();
echo $second. PHP_EOL; //2
$it->next();
$it->seek($first); //Was intended to seek to element 1, key 3, indice 0
echo $it->key() . PHP_EOL; //end up 0 because seek took parameter as indice instead of key. It seek to element indice 3, element 4 key 0.
var_dump($it);
/* Output:
3
2
0
object(ArrayIterator)#2 (1) {
["storage":"ArrayIterator":private]=>
object(ArrayObject)#1 (1) {
["storage":"ArrayObject":private]=>
array(4) {
[3]=>
int(1)
[2]=>
int(2)
[1]=>
int(3)
[0]=>
int(4)
}
}
}
*/