PHP 8.5.8 Released!

ArrayIterator::seek

(PHP 5, PHP 7, PHP 8)

ArrayIterator::seekSeeks to a position

说明

public function ArrayIterator::seek(int $offset): void

Seeks to a given position in the iterator.

参数

offset

The position to seek to.

返回值

没有返回值。

错误/异常

Throws an OutOfBoundsException if the offset is not seekable.

发现了问题?

了解如何改进此页面提交拉取请求报告一个错误
+添加备注

用户贡献的备注 2 notes

up
5
foalford at gmail dot com
10 years ago
<?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)
 }
 }
}
*/
up
5
jon at ngsthings dot com
17 years ago
<?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
}
?>
+添加备注

AltStyle によって変換されたページ (->オリジナル) /