A loop library for PHP.
Run the following command inside of your project directory.
composer require enzyme/loopy
A simple loop over an array.
use Enzyme\Loopy\Each;
$array = [1, 2, 3];
Each::shallow()->begin($array, function($bag) {
echo $bag->value() . ', ';
});
The above will output 1, 2, 3,
A deep loop over a multidimensional array.
use Enzyme\Loopy\Each;
$array = [1, 2, 3, 4 => [4, 5, 6]];
Each::deep()->begin($array, function($bag) {
echo $bag->value() . ', ';
});
The above will output 1, 2, 3, 4, 5, 6,
A loop over a filtered array.
use Enzyme\Loopy\Each;
use Enzyme\Loopy\Filters\SkipNulls;
$array = [1, 2, null, 4, 5];
Each::deep(new SkipNulls)->begin($array, function($bag) {
echo $bag->value() . ', ';
});
The above will output 1, 2, 4, 5,
The $bag
object passed to the callback function generally contains the follow information.
Key | Value | Description |
---|---|---|
key() | Key | The enumerable objects key for the given pass. |
value() | Value | The enumerable objects value for the given pass. |
cycle() | Current cycle (0 based) | How many times around the entire object the looper has gone. |
depth() | Current depth (0 based) | The current depth of the pass, for multidimensional arrays. |
index() | Current index (0 based) | The current index, in this case index is really a count of the number of items encountered so far. |
Filter | Description |
---|---|
SkipNulls | Will skip over any values which are null. |
Regex | Will test value against the supplied regular expression. |
Equal | Will test value for equality against the given rule. (===) |
Less | Will test that value is less than the give rule, or less than or equal if parameter 2 in the constructor is set to true. |
Greater | Will test that value is greater than the give rule, or greater than or equal if parameter 2 in the constructor is set to true. |