where() публичный Метод

Filters the values by a supplied predicate.
public where ( callable $predicate ) : pinq\ITraversable
$predicate callable The predicate function
Результат pinq\ITraversable
Пример #1
0
 /**
  * @dataProvider theImplementations
  */
 public function testThatMaintainsCorrectSameIteratorScheme(\Pinq\ITraversable $traversable, array $data)
 {
     $originalScheme = $traversable->getIteratorScheme();
     $queriedTraversable = $traversable->where(function () {
         throw new \Exception('This should never be executed');
     })->append([])->difference([])->except([])->groupBy(function () {
         return 1;
     })->groupJoin([])->on(function () {
         return true;
     })->to(function () {
         return 1;
     })->indexBy(function () {
         return 1;
     })->intersect([])->join([])->on(function () {
         return true;
     })->to(function () {
         return 1;
     })->keys()->orderBy(function () {
         return 1;
     }, \Pinq\Direction::ASCENDING)->thenByDescending(function () {
         return 1;
     })->reindex()->select(function () {
         return 1;
     })->selectMany(function () {
         return [];
     })->skip(1)->take(5)->union([])->where(function () {
         return true;
     })->whereIn([]);
     //Well that was fun
     $this->assertSame($originalScheme, $queriedTraversable->getIteratorScheme());
 }
Пример #2
0
 /**
  * @dataProvider people
  */
 public function testWhereCondition(\Pinq\ITraversable $traversable, array $data)
 {
     $fileteredNames = $traversable->where(function ($i) {
         return strpos($i['firstName'], 'D') !== false;
     })->implode(':', function ($i) {
         return $i['firstName'] . ' ' . $i['lastName'];
     });
     $this->assertEquals('Daniel Farmer:Dave Desopolous:David Faller:Daniel Dekresta', $fileteredNames);
 }
Пример #3
0
 /**
  * @dataProvider assocOneToTen
  */
 public function testThatElementsAreFilteredFromTraversableAndPreserveKeys(\Pinq\ITraversable $numbers, array $data)
 {
     $predicate = function ($i) {
         return $i % 2 === 0;
     };
     $evenNumbers = $numbers->where($predicate);
     foreach ($data as $key => $value) {
         if (!$predicate($value)) {
             unset($data[$key]);
         }
     }
     $this->assertMatches($evenNumbers, $data);
 }
Пример #4
0
 public function visitFilter(Segments\Filter $query)
 {
     $this->traversable = $this->traversable->where($this->resolvedParameters[$query->getProjectionFunction()->getCallableId()]);
 }
Пример #5
0
 /**
  * @dataProvider theImplementations
  */
 public function testThatExecutionIsDeferred(\Pinq\ITraversable $traversable, array $data)
 {
     $this->assertThatExecutionIsDeferred(function (callable $function) use($traversable) {
         return $traversable->where($function)->reindex();
     });
 }