16/05/21 18:47:36.27 DfTLJBWv.net
1回だけ使うとか連続添字の場合には無駄に大仰だけど, 一般の連想配列の場合でも使えるのが循環リストだと思うの
class DoublyCyclicList extends SplDoublyLinkedList
{
public function next()
{
parent::next();
if (!parent::valid())
{
$mode = parent::getIteratorMode();
parent::setIteratorMode(parent::IT_MODE_FIFO);
parent::rewind();
parent::setIteratorMode($mode);
}
}
public function prev()
{
parent::prev();
if (!parent::valid())
{
$mode = parent::getIteratorMode();
parent::setIteratorMode(parent::IT_MODE_LIFO);
parent::rewind();
parent::setIteratorMode($mode);
}
}
}