/** * Remove HashTable item * * @param PHPExcel_IComparable $pSource Item to remove * @throws Exception */ public function remove(PHPExcel_IComparable $pSource = null) { $hash = $pSource->getHashCode(); if (isset($this->_items[$hash])) { unset($this->_items[$hash]); $deleteKey = -1; foreach ($this->_keyMap as $key => $value) { if ($deleteKey >= 0) { $this->_keyMap[$key - 1] = $value; } if ($value == $hash) { $deleteKey = $key; } } unset($this->_keyMap[count($this->_keyMap) - 1]); } }