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 */
- fromArray
- map
- filter
- reduce
- withEach
- start - Apply a function to the first element.
- end - Apply a function to the last element.
- sort
- count
- value - Get the underlying array.
- isEmpty
### 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();