Skip to content

enzyme/loopy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Status Coverage Status Scrutinizer Code Quality

A loop library for PHP.

Installation

Run the following command inside of your project directory.

composer require enzyme/loopy

Usage

Simple

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,

Deep

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,

Filtered

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,

Bags

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.

Filters

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.