检测值是否重复并使用 Laravel 和集合应用排序标准

Detect if values are repeated and apply order criteria using Laravel and collections

如何检测某个值是否在集合中重复?如果它重复出现,请为以下值应用顺序标准?

我有以下集合,如果 "total" 值重复,我必须按值 "next" 排序,如果值 "next" 也重复,我必须按值 "subsequent"

按照顺序的标准,就是这样:

现在在我的代码中我只有一个普通的集合:

$sales = Sale::select('total', 'next', 'subsequent', 'person_id')->with('person')->get();

谢谢

您可以试试这个(在后台使用 Collection::sort() which uses PHP's usort):

$sales = 'Get result...';

$sorted = $sales->sort(function ($a, $b) {
    return strcmp($a->total, $b->total)
        ?: strcmp($a->next, $b->next)
        ?: strcmp($a->subsequent, $b->subsequent);
});