Mage_Eav_Model_Entity_Collection_Abstract
(что расширяет Varien_Data_Collection_Db
) предоставляет метод delete()
для коллекций, если у вас есть возможность его расширить.
Однако его реализация в основном такая же, как и у вас:
/**
* Delete all the entities in the collection
*
* @todo make batch delete directly from collection
*/
public function delete()
{
foreach ($this->getItems() as $k=>$item) {
$this->getEntity()->delete($item);
unset($this->_items[$k]);
}
return $this;
}