A simple chainable wrapper around common array functions
PHP
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.gitignore
Collection.php
CollectionSpec.php
README.md

README.md

PHP Collections

A simple chainable wrapper around common array functions, map, filter, reduce etc...

$set = Collection::fromArray(array(1,2,3,4));

$tmp = $set->filter(function($val){
    return $val % 2 == 0;
})->map(function($val){
    return $val * 2;
})->reduce(function($sum,$val){
    return $sum + $val;
});

echo $tmp /* 12 */

Documentation


fromArray($array) - static

Create a new collection from an array.

Arguments

  • array - The array to use.

Example

$set = Collection::fromArray(1,2,3,4);

map($fn)

Apply a function to each element replacing the old values with the ones returned.

Arguments

  • fn($value) - The function to apply.

Example

$set->map(function($val){
    return $val * 2;
});

filter($fn)

Remove elements which do not pass the filter.

Arguments

  • fn($value) - The test function, should return true or false.

Example

$set->filter(function($val){
    return $val % 2 == 0;
});

reduce($fn,$mem)

Reduce the elements to a single value.

NB: Reduce returns the result of the reduction NOT a collection.

Arguments

  • fn($mem,$val) - The reduction function
  • $mem - The initial state of the reduction

Example

$set->reduce(function($sum,$value){
    return $sum + $value;
},0);

withEach($fn)

Call a function with each element in the collection.

Arguments

  • fn($val) - The function.

Example

$set->withEach(function($val){
    echo $val;
});

start($fn)

Apply a function to the first element replacing the element with the return value.

Arguments

  • fn($val) - The function.

Example

$set->start(function($val){
    return "Start: " . $val;
});

end($fn)

Apply a function to the last element replacing the element with the return value.

Arguments

  • fn($val) - The function.

Example

$set->end(function($val){
    return $val . " End";
});

sort($fn)

Sort the contents of a collection using a callback function.

Arguments

  • fn($a,$b) - The function.

Example

$set->sort(function($a,$b){
    return $a - $b;
});

count()

Return the number of element in the collection.

Example

$set->count();

value()

Return the underlying array.

Example

$set->value();

isEmpty()

Return true if there are no elements in the collection.

Example

$set->isEmpty();