Pinq\ITraversable::groupJoin PHP 메소드

groupJoin() 공개 메소드

Matches the values with the supplied values according to the supplied filter, groups the the joined values for every original and then maps into as according to the supplied function.
public groupJoin ( array | Traversable $values ) : Pinq\Interfaces\IJoiningOnTraversable
$values array | Traversable
리턴 Pinq\Interfaces\IJoiningOnTraversable
    public function groupJoin($values);

Usage Example

예제 #1
0
 /**
  * @dataProvider assocMixedValues
  */
 public function testCalledWithCorrectValueAndKeyParameters(\Pinq\ITraversable $traversable, array $data)
 {
     $traversable->groupJoin([0 => 0])->on(function ($outer, $inner, $outerKey, $innerKey) use($data) {
         $this->assertSame($data[$outerKey], $outer);
         $this->assertSame($inner, 0);
         $this->assertSame($innerKey, 0);
         return true;
     })->to(function ($outer, \Pinq\ITraversable $group, $outerKey, $groupKey) use($data) {
         $this->assertSame($data[$outerKey], $outer);
         $this->assertSame($group->asArray(), [0 => 0]);
         $this->assertSame($groupKey, 0);
     })->asArray();
     $traversable->groupJoin([0 => 0])->onEquality(function ($outer, $outerKey) use($data) {
         $this->assertSame($data[$outerKey], $outer);
         return 'group Key';
     }, function ($inner, $innerKey) {
         $this->assertSame($inner, 0);
         $this->assertSame($innerKey, 0);
         return 'group Key';
     })->to(function ($outer, \Pinq\ITraversable $group, $outerKey, $groupKey) use($data) {
         $this->assertSame($data[$outerKey], $outer);
         $this->assertSame($group->asArray(), [0 => 0]);
         $this->assertSame($groupKey, 'group Key');
     })->asArray();
 }
All Usage Examples Of Pinq\ITraversable::groupJoin