crazycodr / previous-current-iterator
Simple package that offers an iterator used for previous vs current comparison
Installs: 10 898
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.11
- phpunit/phpunit: ^7.1
This package is auto-updated.
Last update: 2024-10-12 03:50:17 UTC
README
Previous/Current iterator
Allows iteration over an array but returns two items at a time stepping by one item at a time. Thus, the iterator for
['a', 'b', 'c', 'd']
Will return
['previous' => 'a', 'current' => 'b'] ['previous' => 'b', 'current' => 'c'] ['previous' => 'c', 'current' => 'd']
Current/Next iterator
Allows iteration over an array but returns two items at a time stepping by one item at a time. Thus, the iterator for
['a', 'b', 'c', 'd']
Will return
['current' => 'a', 'next' => 'b'] ['current' => 'b', 'next' => 'c'] ['current' => 'c', 'next' => 'd'] ['current' => 'd', 'next' => null]
Installation
To install it, just include this requirement into your composer.json
{ "require": { "crazycodr/previous-current-iterator": "1.*" } }
And then run composer install/update as necessary.
Supports
Only PHP 5.5 or more can be supported due to the fact that key() can only return arrays starting with PHP 5.5!
Examples
To use the PreviousCurrentIterator, just instanciate a copy with an array and foreach it!
$data = ['a', 'b', 'c', 'd']; foreach(new PreviousCurrentIterator($data) as $keys => $values) { //Compare previous and current if ($values['previous'] !== $values['current']) { echo 'Not the same<br />'; } }
To use the CurrentNextIterator, just instanciate a copy with an array and foreach it!
$data = ['a', 'b', 'c', 'd']; foreach(new CurrentNextIterator($data) as $keys => $values) { //Compare previous and current if ($values['next'] !== null) { if ($values['current'] !== $values['next']) { echo 'Not the same<br />'; } } }
Use cases
Practical if you need to compare two items together in a previous vs current or current vs next manner.