【发布时间】:2015-08-13 15:00:12
【问题描述】:
今天的排序很有趣!叹。我有一大堆雄辩的模型,这些模型需要通过一个参数在数组中组合在一起,并根据另一个参数在这些“团块”中排序。这可能很难解释:(
$master 是 Eloquent 结果的集合,我不知道如何在这里写出来,循环这个我可以访问所有模型函数/关系
$master = [];
这些有 2 个属性需要作为排序的基础,以下属性示例
//Object 1
$master->carry = 0;
$master->section = 'red';
//Object 2
$master->carry = 1;
$master->section = 'blue';
//Object 3
$master->carry = 0;
$master->section = 'blue';
我想对这些的大量集合进行排序,以便每个 $master-> 部分都位于数组中的一个“丛”中,并且在该“丛”中,$master->carry=0 产品列在最后。
From the example above I'd expect Object1, Object3, Object2
我尝试了一些不同的 $master->sort() 和 $master->sortBy() 东西,但是每个新的排序都会抛弃旧的排序:(
我目前有下面的代码,它将所有颜色分组,但它没有根据 $master->carry 排序它们
$order = array('red', 'blue', 'green');
$master = $master->sort(function ($a, $b) use ($order) {
$pos_a = array_search($a->sectionheader, $order);
$pos_b = array_search($b->sectionheader, $order);
return $pos_a - $pos_b;
});
【问题讨论】:
标签: php sorting laravel laravel-5 eloquent