creatortsv / combination-iterator
v1.0.3
2023-01-23 15:05 UTC
Requires
- php: >=8.1
Requires (Dev)
- phpunit/phpunit: ^9.5.27
README
Installation
The only thing has to be done
composer install creatortsv/combination-iterator
Usage
Searching for pin code combination for example
use Creatortsv\CombinationIterator\CombinationLengthIterator; use Creatortsv\CombinationIterator\CombinationIterator; $codeIterator = new CombinationIterator( range(0, 9), range(0, 9), range(0, 9), range(0, 9), ); // The same as ... $codeIterator = new CombinationLengthIterator( iterator: new CombinationIterator(range(0, 9)), length: 4, ); print_r($codeIterator->count()); // prints 10000 total combinations print_r($codeIterator->length); // prints 4 foreach ($codeIterator as $combination) { // Search matching of [#, #, #, #] symbols pin code ... // for example [3, 5, 9, 7] }
Executing some actions on each element
// ... use $functions = [ static fn (int $n) => print_r('first execution for ' . $n), static fn (int $n) => print_r('second execution for ' . $n), ]; foreach (new CombinationIterator([1, 2, 3], $functions) as [$number, $function]) { $function($number); } // prints ... // first execution for 1 // second execution for 1 // the same for the 2 and 3 ...
It works with any iterable objects
$iterator = new CombinationIterator( new RecursiveArrayIterator([1, [2, 3], 4]), new MyOwnMagicIterator(), );