我想使用 while()循环遍历结果集,而不是最常见的 foreach()
如果我有这个代码,例如:
$articles = $this->Articles->find();
foreach ($articles as $article) {
echo $article->name;
}
如何使用while循环访问$ articles的行?
我已经尝试使用 next()或 $ articles-> next()来遍历它,但没有成功。
答案 0 :(得分:1)
我不确定你是否真的需要使用while()
循环来实现你想要实现的目标,但要回答这个问题,你必须首先得到结果集,然后使用它{ {3}}实现循环条件,这是获取当前结果的地方,然后您可以通过current()
访问该结果。然后使用next()
完成光标前进。
$query = $this->Articles->find();
$resultSet = $query->all();
while ($resultSet->valid()) {
$article = $resultSet->current();
// ...
$resultSet->next();
}
另请参阅 Iterator::valid()