ArrayIterator::seek()
(PHP 5,PHP 7)
Seek to position
说明
public ArrayIterator::seek(int $position) : void
Warning本函数还未编写文档,仅有参数列表。
参数
- $position
The position to seek to.
返回值
没有返回值。
<?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) } } } */