簡體   English   中英

對對象大於0的Laravel集合進行排序-Laravel 5.2

[英]Sort Laravel collection where object is greater than 0 - Laravel 5.2

我正在調用Halo 5 API,特別是讓Arena中的每個玩家都使用武器。 我遇到的問題是,當我撥打該電話時,有7種武器的玩家殺死了0件武器,例如:

18 => array:3 [▼
    "WeaponId" => 2457457776.0
    "TotalKills" => 0
    "TotalHeadshots" => 0
  ]
  53 => array:3 [▼
    "WeaponId" => 2015271382
    "TotalKills" => 0
    "TotalHeadshots" => 0
  ]
  51 => array:3 [▶]
  48 => array:3 [▶]
  44 => array:3 [▶]
  27 => array:3 [▶]
  32 => array:3 [▶]

我想從我的收藏中拿走這7種武器:

這是我的收藏集的設置方式:

    public function getArenaWeaponKills($playerArenaWeaponStats) {

        $results = collect($playerArenaWeaponStats->Results[0]->Result->ArenaStats->WeaponStats);

        $array = $results->sortByDesc('TotalKills')->map(function($item, $key) {
            return [
                'WeaponId' => $item->WeaponId->StockId,
                'TotalKills'   => $item->TotalKills,
                'TotalHeadshots' => $item->TotalHeadshots,
            ];
        });

        return $array;
    } 

現在,我正在按('TotalKills')降序對它們進行排序。 有沒有辦法以相同的方式對它們進行排序,包括檢查'TotalKills'是否> 0?

您可以在鏈中添加filter()方法:

$array = $results->sortByDesc('TotalKills')
        ->filter(function ($item) {
            return $item->TotalKills > 0;
        })
        ->map(function($item, $key) {
            return [
                'WeaponId' => $item->WeaponId->StockId,
                'TotalKills'   => $item->TotalKills,
                'TotalHeadshots' => $item->TotalHeadshots,
            ];
        });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM