【发布时间】:2019-04-01 03:59:03
【问题描述】:
我正在尝试按特定字段对ArrayCollection 进行排序。 ArrayCollection 是一系列课程。在Course 实体中有一个名为isLive 的方法,它返回一个布尔值。
我想对这个集合进行排序,使“实时”课程位于数组的开头,这就是从 isLive 调用返回 true 的课程。
这是我目前拥有的代码,但$sorted数组中的第一个条目是非直播课程。
$iterator = $this->courses->getIterator();
$iterator->uasort(function ($a, $b) {
if ($a->isLive() == $b->isLive()) {
return 0;
}
return ($a->isLive() < $b->isLive()) ? -1 : 1;
});
$sorted = new ArrayCollection(iterator_to_array($iterator));
【问题讨论】:
标签: arrays symfony sorting doctrine php-7.2