
, (*1)
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, (*2)
['a', 'b', 'c', 'd']
Will return, (*3)
['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, (*4)
['a', 'b', 'c', 'd']
Will return, (*5)
['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, (*6)
{
"require": {
"crazycodr/previous-current-iterator": "1.*"
}
}
And then run composer install/update as necessary., (*7)
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!, (*8)
Examples
To use the PreviousCurrentIterator, just instanciate a copy with an array and foreach it!, (*9)
$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!, (*10)
$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., (*11)