public function prev($offset = 1)
{
while (($valid = $this->valid()) === true && $offset > 0) {
$currentValue = current($this->values);
$currentValue->prev();
while ($currentValue->valid() === false && $valid === true) {
prev($this->values);
if (($valid = $this->valid()) === true) {
$currentValue = current($this->values);
$currentValue->end();
}
}
if ($valid === true) {
while (in_array($this->current(), $this->skipedValues) === true && $this->valid() === true) {
$this->prev();
}
}
$this->key--;
$offset--;
}
return $this;
}