/** * This method will retain only those elements not in the specified array. * * @access public * @param \Traversable $values an array of elements that are to be retained * @return boolean whether any elements were retained */ public function retainValues($values) { $this->assertNotTraversable($values); $elements = array(); foreach ($values as $value) { $serialization = (string) serialize($value); foreach ($this->elements as $key => $temp) { Core\DataType::enforce('integer|string', $key); if ((string) serialize($temp) == $serialization) { $elements[$key] = $temp; } } } $this->elements = $elements; return !$this->isEmpty(); }