我正在使用Eloquent unique()
collections方法返回唯一项。它确实从集合中返回第一个唯一项。但是,我要求从集合中返回最后一个唯一项目。
$collection = collect([1, 1, 2, 2, 3, 4, 2]);
~~~ ~~~
$unique = $collection->unique();
$unique->values()->all()
上面的代码将返回// [1, 2, 3, 4]
。如您所见,unique()方法返回第一个1
和2
,而不是最后一个1
和2
。
我也可以使用unique()
方法进行回调。但是,我无处可去,该算法应如何从集合中返回最后一个唯一项目。
答案 0 :(得分:0)
我自己已经弄清楚了。这个答案适用于那些像我一样有问题的人:
$diary = Diary::orderBy('id', 'desc')->get()->unique('workId')->values()->all();
return $diary;
在上面,我使用了orderBy()
方法来更改集合的顺序。 get()
方法将结果作为集合返回。 unique()
方法用于仅从集合中返回唯一项。 values()
方法返回一个新集合,其中键重置为连续整数,all()
方法返回完整集合。