[英]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.