我想使用與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]);
}
問題是它不能正常循環。我只得到一個元素。
我認爲這是因爲next()方法中的++$this->_position
代碼沒有任何效果,因爲_position是一個字符串(關聯數組的關鍵字)。
那麼我該如何去這種類型的數組的下一個元素?
出於好奇功能,你爲什麼不只是使用[ ArrayIterator(http://us.php.net/arrayiterator)? – nickb
可以請你展示更多你的代碼嗎?那將是a)你說'class XYZ實現Iterator'的部分b)你嘗試使用它的部分。 – Niko
「我定義了這些方法」 - 它被稱爲「按原樣複製粘貼」;-) – zerkms