enzyme/loopy

A loop library for PHP.

v1.0.0 2016-04-03 07:54 UTC

This package is not auto-updated.

Last update: 2024-04-27 16:09:00 UTC


README

4d6de34c-9ec1-11e5-97a1-2aee3eb0ab3b.png

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.