PHP code example of stubbles / sequence
1. Go to this page and download the library: Download stubbles/sequence library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
stubbles / sequence example snippets
Sequence::generate(
$start,
function($previous) { return $previous + 2; },
function($value, $invocations) { return $value < (PHP_INT_MAX - 1) && 100 >= $invocations; }
)->values();
Sequence::of([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])->limit(3)->data();
Sequence::of([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])->skip(10)->data();
Sequence::of([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
->filter(function($value) { return $value % 2 === 0;})
->data();
Sequence::of([1, 2, 3, 4])->map(function($e) { return $e * 2; })->data();
Sequence::of([1, 2, 3, 4])->mapKeys(function($e) { return $e * 2; })->data();
Sequence::of([1, 2])->append([3, 4]); // results in new sequence with [1, 2, 3, 4]
Sequence::of([1, 2, 3, 4])->peek('var_dump');
Sequence::of(['foo' => 'bar'])->each(
function($element, $key)
{
// do something with $element and $key
}
);
Sequence::of(['foo' => 'bar'])->each(
function($element)
{
// do something with $element and $key
}
);
Sequence::of([1, 2, 3, 4])->each(
function($element)
{
echo $element . "\n";
return (2 <= $element);
}
);
echo Sequence::of(['foo', 'bar', 'baz'])->first(); // displays 'foo'
Sequence::of([1, 2, 3, 4])->reduce(function($identity, $b) { return $identity + $b; });
Sequence::of([1, 2, 3, 4])->reduce()->toSum();
Sequence::of(['a', 'b', 'c', 'd'])->reduce()->toSum(
function($sum, $element)
{
return $sum + ord($element);
}
);
Sequence::of([1, 2, 3, 4])->reduce()->toMin();
Sequence::of(['a', 'b', 'c', 'd'])->reduce()->toSum(
function($smallest, $element)
{
return (null === $smallest || ord($element) < ord($smallest)) ? $element : $smallest;
}
);
Sequence::of([1, 2, 3, 4])->reduce()->toMax();
Sequence::of(['a', 'b', 'c', 'd'])->reduce()->toMax(
function($greatest, $element)
{
return (null === $greatest || ord($element) > ord($greatest)) ? $element : $greatest;
}
);
Sequence::of(['foo' => 'bar', 'dummy' => 'baz'])->collect()->inList(); // returns ['bar', 'baz']
$people= [
1549 => new Employee(1549, 'Timm', 'B', 15),
1552 => new Employee(1552, 'Alex', 'I', 14),
6100 => new Employee(6100, 'Dude', 'I', 4)
];
$employees = Sequence::of($people)->collect()->inMap(
function(Employee $e) { return $e->id(); },
function(Employee $e) { return $e->name(); }
); // results in [1549 => 'Timm', 1552 => 'Alex', 6100 => 'Dude']
$timm = new Employee(1549, 'Timm', 'B', 15);
$alex = new Employee(1552, 'Alex', 'I', 14);
$dude = new Employee(6100, 'Dude', 'I', 4);
$employees = Sequence::of([$timm, $alex, $dude])->collect()->inPartitions(
function(Employee $e) { return $e->years() > 10; }
); // results in [true => [$timm, $alex], false => [$dude]]
$timm = new Employee(1549, 'Timm', 'B', 15);
$alex = new Employee(1552, 'Alex', 'I', 14);
$dude = new Employee(6100, 'Dude', 'I', 4);
$employees = Sequence::of([$timm, $alex, $dude])->collect()->inPartitions(
function(Employee $e) { return $e->years() > 10; },
Collector::forAverage(function(Employee $e) { return $e->years(); })
); // results in [true => 14.5, false => 4]
$timm = new Employee(1549, 'Timm', 'B', 15);
$alex = new Employee(1552, 'Alex', 'I', 14);
$dude = new Employee(6100, 'Dude', 'I', 4);
$employees = Sequence::of([$timm, $alex, $dude])->collect()->inGroups(
function(Employee $e) { return $e->department(); }
); // results in ['B' => [$timm], 'I' => [$alex, $dude]]
$timm = new Employee(1549, 'Timm', 'B', 15);
$alex = new Employee(1552, 'Alex', 'I', 14);
$dude = new Employee(6100, 'Dude', 'I', 4);
$employees = Sequence::of([$timm, $alex, $dude])->collect()->inGroups(
function(Employee $e) { return $e->department(); },
Collector::forSum(function(Employee $e) { return $e->years(); })
); // results in ['B' => 15, 'I' => 18]
$timm = new Employee(1549, 'Timm', 'B', 15);
$alex = new Employee(1552, 'Alex', 'I', 14);
$dude = new Employee(6100, 'Dude', 'I', 4);
$employees = Sequence::of([$timm, $alex, $dude])
->map(function(Employee $e) { return $e->name(); })
->collect()
->byJoining();
// results in 'Timm, Alex, Dude'
$timm = new Employee(1549, 'Timm', 'B', 15);
$alex = new Employee(1552, 'Alex', 'I', 14);
$dude = new Employee(6100, 'Dude', 'I', 4);
$employees = Sequence::of([1549 => $timm, 1552 => $alex, 6100 => $dude])
->map(function(Employee $e) { return $e->name(); })
->collect()
->byJoining(', ', '(', ')', ':');
// results in '(1549:Timm, 1552:Alex, 6100:Dude)'
echo Sequence::of(['foo', 'bar', 'baz'])->count(); // displays 3
echo count(Sequence::of(['foo', 'bar', 'baz'])); // displays 3
Sequence::of(['foo' => 'bar', 'dummy' => 'baz'])->values(); // returns ['bar', 'baz']
Sequence::of(['foo' => 'bar', 'dummy' => 'baz'])->data(); // returns ['foo' => 'bar', 'dummy' => 'baz']
assertThat($yourSequence, Provides::values([1, 2, 3]));
assertThat($yourSequence, Provides::data(['foo' => 1, 'bar' => 2, 'baz' => 3]));