我有一个 SPLObjectStorage 对象,其中一个 Player 对象作为键,分数作为与之关联的信息。播放器对象按从最高到最低的顺序添加到存储中,但我现在到了需要以相反顺序遍历它们的地步。
我还需要能够从指定的偏移量开始一直循环。我已经在下面找到了这部分,我只是想不出一个好的方法来扭转它。
// $players_group = new SPLObjectStorage()
// code to add Player and Score would go here
// above lines just for example
# NEED TO REVERSE ORDER PLAYERS GROUP HERE
$infinite_it = new InfiniteIterator($players_group);
$limit_it = new LimitIterator($infinite_it, $current_offset, $players_group->count());
foreach($limit_it as $p){
// properly outputting from offset all the way around
// but I need it in reverse order
}
我想避免遍历存储对象并将它们全部推送到一个数组中,然后执行 array_reverse,然后最后继续我的 foreach 循环。