protected function _getLosers() { // $gameMembershipsCollection = new Collection($this->game_memberships); // $victor_member = $gameMembershipsCollection->indexBy('id')->max('points'); // // $victor['full_name'] = Hash::get($victor_member, 'member.full_name'); // $victor['id'] = Hash::get($victor_member, 'member.id'); $gm_collection = new Collection($this->game_memberships); $victor = $gm_collection->indexBy('id')->max('points'); $victor_id = $victor->generic_member->id; $losers = $gm_collection->filter(function ($gm, $key) use($victor_id) { return $victor_id != $gm->generic_member->id; }); // if(!$loser = $losers->first()) // return false; // if(!($loser->member or $loser->temp_member)) // return false; $losers_array = []; foreach ($losers as $loser) { array_push($losers_array, $loser); } return $losers_array; }
/** * Tests indexBy with a deep property * * @return void */ public function testIndexByDeep() { $items = [['id' => 1, 'name' => 'foo', 'thing' => ['parent_id' => 10]], ['id' => 2, 'name' => 'bar', 'thing' => ['parent_id' => 11]], ['id' => 3, 'name' => 'baz', 'thing' => ['parent_id' => 10]]]; $collection = new Collection($items); $grouped = $collection->indexBy('thing.parent_id'); $expected = [10 => ['id' => 3, 'name' => 'baz', 'thing' => ['parent_id' => 10]], 11 => ['id' => 2, 'name' => 'bar', 'thing' => ['parent_id' => 11]]]; $this->assertEquals($expected, iterator_to_array($grouped)); }
protected function _indexBy($game_memberships, $by = 'id') { $gmCollection = new Collection($game_memberships); return $gmCollection->indexBy($by); }