首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel集团收集和排序的最大价值

Laravel集团收集和排序的最大价值
EN

Stack Overflow用户
提问于 2022-05-08 18:22:20
回答 2查看 153关注 0票数 1

我有一个具有值的Laravel集合,我想按“类型”进行分组,并按最大的“概率”排序。以下是我的收藏的样子:

代码语言:javascript
复制
Illuminate\Support\Collection Object
(
    [items:protected] => Array
        (
            [0] => Array
                (
                    [type] => correct-score
                    [name] => 1-1
                    [probability] => 10.599257670442
                    [probability_odd] => 10.142219704667
                    [odd] => 
                    [value_bet] => 0
                    [prognose_type_id] => 12
                    [value_bet_diff] => -10.142219704667
                )

            [1] => Array
                (
                    [type] => 3-way
                    [name] => 1
                    [probability] => 52.459602877727
                    [probability_odd] => 2.0491958402842
                    [prognose_type_id] => 1
                    [odd] => 2.48
                    [value_bet_diff] => 0.4308041597158
                )

            [2] => Array
                (
                    [type] => 3-way
                    [name] => 2
                    [probability] => 24.682032371379
                    [probability_odd] => 4.3553949845985
                    [prognose_type_id] => 1
                    [odd] => 2.66
                    [value_bet_diff] => -1.6953949845985
                )

            [3] => Array
                (
                    [type] => 3-way
                    [name] => X
                    [probability] => 22.857984044926
                    [probability_odd] => 4.7029519221256
                    [prognose_type_id] => 1
                    [odd] => 3.7
                    [value_bet_diff] => -1.0029519221256
                )

            [4] => Array
                (
                    [type] => double-chance
                    [name] => 1X
                    [probability] => 37.658793461327
                    [probability_odd] => 2.8545789739758
                    [prognose_type_id] => 4
                    [odd] => 1.49
                    [value_bet_diff] => -1.3645789739758
                )

            [5] => Array
                (
                    [type] => double-chance
                    [name] => X2
                    [probability] => 23.770008208152
                    [probability_odd] => 4.5225058005294
                    [prognose_type_id] => 4
                    [odd] => 1.55
                    [value_bet_diff] => -2.9725058005294
                )

            [6] => Array
                (
                    [type] => double-chance
                    [name] => 12
                    [probability] => 38.570817624553
                    [probability_odd] => 2.7870811826288
                    [prognose_type_id] => 4
                    [odd] => 1.29
                    [value_bet_diff] => -1.4970811826288
                )

            [7] => Array
                (
                    [type] => both-to-score
                    [name] => yes
                    [probability] => 58.505776168275
                    [probability_odd] => 1.8374254140447
                    [prognose_type_id] => 8
                    [odd] => 
                    [value_bet_diff] => -1.8374254140447
                )

因此,我想实现这样的目标:

代码语言:javascript
复制
Illuminate\Support\Collection Object
(
    [items:protected] => Array
        (
            [0] => Array
                (
                    [type] => correct-score
                    [name] => 1-1
                    [probability] => 10.599257670442
                    [probability_odd] => 10.142219704667
                    [odd] => 
                    [value_bet] => 0
                    [prognose_type_id] => 12
                    [value_bet_diff] => -10.142219704667
                )

            [1] => Array
                (
                    [type] => 3-way
                    [name] => 1
                    [probability] => 52.459602877727
                    [probability_odd] => 2.0491958402842
                    [prognose_type_id] => 1
                    [odd] => 2.48
                    [value_bet_diff] => 0.4308041597158
                )


            [6] => Array
                (
                    [type] => double-chance
                    [name] => 12
                    [probability] => 38.570817624553
                    [probability_odd] => 2.7870811826288
                    [prognose_type_id] => 4
                    [odd] => 1.29
                    [value_bet_diff] => -1.4970811826288
                )

            [7] => Array
                (
                    [type] => both-to-score
                    [name] => yes
                    [probability] => 58.505776168275
                    [probability_odd] => 1.8374254140447
                    [prognose_type_id] => 8
                    [odd] => 
                    [value_bet_diff] => -1.8374254140447
                )

还没有找到类似的解决方案,所以我最终决定在这里尝试。你能帮帮我吗?

提前感谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-05-08 20:08:24

也许最好以雄辩的口才来做这件事,但就像你把它当作一个集合问题一样;

假设您的集合名为$items

代码语言:javascript
复制
$sorted = $items->groupBy('type')
            ->map(function($group){
              return $group->sortByDesc('probability')->take(1);
            })
            ->flatten(1);
票数 0
EN

Stack Overflow用户

发布于 2022-05-08 20:55:24

最简短的:

代码语言:javascript
复制
$items = $collections
    ->sortByDesc('probability')
    ->unique('type');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72163972

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档