我想迭代存储在 Zend_Db_Table_Rowset 对象中的数据行,然后删除/取消设置某些行,如果它们不满足某些条件。
我可以使用 toArray() 仅从对象中获取数据行,然后很容易取消设置我不需要的行。但由于我想保留我的对象以供进一步使用,我不想这样做。
当然,一种解决方案是调整我的查询以便只检索我需要的内容,但在这种情况下这是不可能的。至少我不知道怎么做。
我尝试了以下不起作用:
foreach ($rowset as $key => $row)
{
if (!$condition == satisfied)
{
unset($rowset[$key]);
}
}
当然它不起作用,因为没有 $rowset[$key]... 数据存储在子数组 [_data:protected] 但未设置 $rowset[_data:protected][$key] 没有工作。
也许我对行集对象(或一般对象的表示)的概念还不够成熟,无法理解我在做什么。欢迎任何澄清和提示!
[编辑] $row->delete 不是一个选项,我不想从数据库中删除该行!我不想先创建一个数组,如果我想我会做 $rowset->toArray() [/EDIT]
解决方案:我最终做了我认为我做不到的事情,这意味着我将所有内容都集成到了初始查询中。