Beispiel #1
0
function groupJoinResultSelectorFunc(Person $person, IEnumerable $pets) : string
{
    $petList = $pets->select(function (Pet $pet) {
        return $pet->Name;
    })->toArray();
    return sprintf('Owner: %s; Pets: "%s"', $person->Name, implode('", "', $petList));
}
 /**
  * Resets that sequence.
  *
  * @param bool $resetSequence Reset inner sequence or not.
  */
 protected function resetMe(bool $resetSequence = true)
 {
     if ($resetSequence) {
         $this->_sequence->reset();
     }
     $selector = $this->_selector;
     // prepare items before ...
     $items = $this->_sequence->select(function ($x, IItemContext $ctx) use($selector) {
         $result = new \stdClass();
         $result->key = $ctx->key();
         $result->sortBy = $selector($x, $ctx);
         $result->value = $x;
         return $result;
     })->toArray();
     $comparer = $this->_comparer;
     \uasort($items, function (\stdClass $x, \stdClass $y) use($comparer) : int {
         return $comparer($x->sortBy, $y->sortBy);
     });
     $this->_i = static::createEnumerable($items)->withNewKeys('($key, $item) => $item->key')->select('$x => $x->value');
 }