result as $k=>$v) $c += count($v); return $c; } /** ArrayAccess **/ public function offsetExists($offset) { return isset($this->result[$offset]); } public function offsetGet($offset) { return $this->result[$offset]; } public function offsetSet($offset,$value) { if (isset($this->result[$offset])) $this->_count -= $this->result[$offset]->count(); $this->result[$offset] = $value; $this->_count += $value->count(); } public function offsetUnset($offset) { unset($this->result[$offset]); } /** Iterator **/ public function current() { if (! $this->_rewound) $this->rewind(); return current($this->result)->current(); } public function key() { return current($this->result)->key(); } public function next() { if (current($this->result)->valid() AND current($this->result)->next()->valid()) return current($this->result); next($this->result); while (current($this->result) AND ! current($this->result)->valid()) if (next($this->result) === FALSE) break; return current($this->result); } public function rewind() { reset($this->result); if (! current($this->result)->valid()) $this->next(FALSE); $this->_rewound = TRUE; } public function valid() { return is_object(current($this->result)) ? current($this->result)->valid() : FALSE; } } // End Database_LDAP_Search_Result ?>