作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我遇到了一些情况,我正在使用 SplObjectStorage 对象,有时我需要附加一个项目并将其推到列表的顶部,这样当我遍历这些项目时,我会将它作为第一个对象获取。
即
$splObj->attach($something)
$splOBj->attach($something2)
$splObj->attach($this_must_be_first);
// When I iterate
foreach($splOBj as $obj) {
// I need the FIRST item to be the $this_must_be_first
}
最佳答案
我不确定 iterators
是否存在这种情况,但这是使用 iterator_to_array
和 array_reverse
的简单解决方法
$splObj = new SplObjectStorage();
$last = new stdClass();
$last->element = "Last Element";
$splObj->attach(new stdClass());
$splObj->attach(new stdClass());
$splObj->attach($last);
$splArray = iterator_to_array($splObj);
$splArray = array_reverse($splArray);
foreach ($splArray as $obj)
{
var_dump($obj);
}
输出
object(stdClass)[2]
public 'element' => string 'Last Element' (length=12)
object(stdClass)[4]
object(stdClass)[3]
关于PHP SplObjectStorage 附加并推送到列表顶部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12626174/
我是一名优秀的程序员,十分优秀!