Следующий метод итератора для ассоциативного массива

Я хочу использовать ассоциативный массив с итератором PHP:

http://php.net/manual/en/ class.iterator.php

это возможно?

Я определил эти методы:

  public function rewind(){    
    reset($this->_arr);
    $this->_position = key($this->_arr);
  }

  public function current(){    
    return $this->_arr[$this->_position];
  }

  public function key(){
    return $this->_position;
  }

  public function next(){    
    ++$this->_position;
  }

  public function valid(){    
    return isset($this->_arr[$this->_position]);
  }

проблема в том, что он не выполняет итерацию правильно. Я получаю только один элемент.

Я думаю, это из-за ] ++$this->_positionкод в методе next(), который не имеет никакого эффекта, потому что _position — это строка (ключ ассоциативного массива).

так как я могу перейти к следующему элементу массива этого типа?

15
задан Alex 17 June 2012 в 20:56
поделиться