首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ArrayIterator的key()在for循环中不工作?

ArrayIterator的key()在for循环中不工作?
EN

Stack Overflow用户
提问于 2016-08-03 11:28:36
回答 1查看 75关注 0票数 0

有人能向我解释,为什么key()for循环中不能正常工作?

示例

代码语言:javascript
复制
$iterator = new \ArrayIterator(range(1,3));
for ($iterator->seek(0); $iterator->key() < 3; $iterator->next()) {
    echo "{$iterator->key()} => {$iterator->current()}", PHP_EOL;
}

它返回无穷大循环,但如果更改for循环的第二个表达式on:$iterator->key() < 2,则不会显示最后一个元素。有人能解释原因吗?

我需要在X上显示2个元素,改变数组中的指针,然后在Y上显示3个元素,改变数组中的指针,然后显示2个元素.等。

EN

回答 1

Stack Overflow用户

发布于 2016-08-03 11:52:56

你可以直接用foreach

代码语言:javascript
复制
foreach ($iterator as $key => $value) {
    // Do the things you gotta do here...
}

我想你不是在要求解决办法,你只是想知道为什么。正如其他人所解释的那样,一旦迭代器到达最后一个元素,$iterator->key()就是null,即< 3,并将保持这种方式。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38742293

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档