Zend_Db_Table_Rowsetオブジェクトに格納されているデータ行を繰り返し処理し、特定の基準を満たしていない場合は、一部の行を削除/設定解除したいと思います。
toArray()を使用して、オブジェクトからデータ行のみを取得すると、不要な行の設定を簡単に解除できます。しかし、私は自分のオブジェクトをさらに使用するために保持したいので、それはしたくありません。
もちろん、1つの解決策は、必要なものだけを取得するようにクエリを調整することですが、このシナリオではそれは不可能です。少なくとも私には方法がわかりません。
うまくいかなかった次のことを試しました:
foreach ($rowset as $key => $row)
{
if (!$condition == satisfied)
{
unset($rowset[$key]);
}
}
そしてもちろん、$ rowset [$ key]がないため、機能しません...データはサブ配列[_data:protected]に保存されますが、unset $ rowset [_data:protected][$key]は機能しませんでしたどちらかで動作します。
たぶん、行セットオブジェクト(または一般的なオブジェクトの表現)の私の概念は、私が何をしているのかを理解するのに十分成熟していません。説明やヒントは大歓迎です!
[編集]$row-> deleteはオプションではありません。データベースから行を削除したくありません!最初に配列を作成したくありません。必要な場合は、$ rowset-> toArray()[/EDIT]を実行するだけです。
解決策:私もできなかったと思ったことを実行することになりました。つまり、すべてを最初のクエリに統合しました。